Simple and straightforward tutorial on xargs!
תוכן עניינים:
- כיצד להשתמש ב- Linux
xargs
Command - כיצד להציג את הפקודה ולבקש את המשתמש
- כיצד להגביל את מספר הוויכוחים
- כיצד להפעיל פקודות מרובות
- כיצד לציין תוחם
- כיצד לקרוא פריטים מקובץ
- באמצעות
xargs
עםfind
- שימוש ב- xargs כדי לקצץ דמויות מרחב לבן
- סיכום
כלי השירות
xargs
מאפשר לך לבנות ולבצע פקודות
xargs
קלט רגילה. בדרך כלל משתמשים בו בשילוב עם פקודות אחרות באמצעות צנרת.
באמצעות
xargs
, אתה יכול לספק קלט רגיל כטיעון לשירותי שורת פקודה כמו
mkdir
ו-
rm
.
במדריך זה, נסקור את היסודות של השימוש בפקודה
xargs
.
כיצד להשתמש ב- Linux
xargs
Command
xargs
קורא ארגומנטים מהקלט הרגיל, מופרדים על ידי רווחים ריקים או שורות חדשות ומבצע את הפקודה שצוינה באמצעות הקלט
xargs
הפקודה. אם לא סופקה פקודה, ברירת המחדל היא
/bin/echo
.
התחביר
xargs
הוא כדלקמן:
xargs]
הדוגמה הבסיסית ביותר לשימוש ב-
xargs
היא לעבור מספר מחרוזות המופרדות באמצעות מרחב לבן באמצעות צינור ל-
xargs
ולהריץ פקודה שתשתמש באותם מיתרים כטיעונים.
echo "file1 file2 file3" | xargs touch
בדוגמה שלמעלה אנו מעבירים את הקלט הסטנדרטי ל-
xargs
,
xargs
touch
מופעלת עבור כל טיעון, ויוצרים שלושה קבצים. זה אותו דבר כאילו תרוץ:
כיצד להציג את הפקודה ולבקש את המשתמש
כדי להדפיס את הפקודה בטרמינל לפני ביצועו השתמש באפשרות
-t
(
--verbose
):
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
הקלד
y
או
Y
כדי לאשר ולהפעיל את הפקודה:
touch file1 file2 file3 ?…y
אפשרות זו שימושית בעת ביצוע פקודות הרסניות.
כיצד להגביל את מספר הוויכוחים
כברירת מחדל, מספר הארגומנטים המועברים לפקודה נקבע על ידי מגבלת המערכת.
האפשרות
-n
(
--max-args
) מציינת את מספר הארגומנטים שיש להעביר לפקודה הנתונה.
xargs
מריץ את הפקודה שצוינה פעמים רבות ככל שצריך עד
xargs
כל הטיעונים.
בדוגמה הבאה, מספר הטיעונים הנקראים מהקלט הסטנדרטי מוגבל ל -1.
echo "file1 file2 file3" | xargs -n 1 -t touch
כפי שניתן לראות מהפלט המילולי שלמטה, פקודת המגע מבוצעת בנפרד עבור כל טיעון:
touch file1 touch file2 touch file3
כיצד להפעיל פקודות מרובות
להפעלת פקודות מרובות עם
xargs
, השתמש באפשרות
-I
. זה עובד על ידי הגדרת
replace-str
לאחר אפשרות
-I
וכל המופעים של ה- subst-
replace-str
מוחלפים בטיעון המועבר ל- xargs.
הדוגמה הבאה של
xargs
תריץ שתי פקודות, תחילה היא תיצור את הקבצים באמצעות
touch
ואז היא
xargs
את הקבצים עם הפקודה
ls
:
echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'
-rw-r--r-- 1 linuxize users 0 May 6 11:54 file1 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file2 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file3
הבחירה הנפוצה עבור
replace-str
היא
%
. עם זאת, אתה יכול להשתמש ב מציין מיקום אחר, למשל,
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
כיצד לציין תוחם
השתמש באפשרות
-d
(-
--delimiter
) כדי להגדיר תיחום מותאם אישית, שיכול להיות תו בודד או רצף בריחה החל מ-
\
.
הדוגמה הבאה בה אנו משתמשים
;
כתוחם:
echo "file1;file2;file3" | xargs -d ; -t touch
כיצד לקרוא פריטים מקובץ
הפקודה xargs יכולה גם לקרוא פריטים מקובץ במקום קלט רגיל. לשם כך, השתמש באפשרות
-a
(
--arg-file
) ואחריו שם הקובץ.
בדוגמה הבאה, הפקודה
xargs
תקרא את קובץ ה-
ips.txt
כל כתובת IP.
8.8.8.8 1.1.1.1
אנו משתמשים גם באפשרות
-L 1
, המורה ל-
xargs
לקרוא שורה אחת בכל פעם. אם אפשרות זו מושמטת
xargs
יעביר את כל ה- IP לפקודת
ping
יחידה.
xargs -t -L 1 -a ips.txt ping -c 1
ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=68.1 ms… ping -c 1 1.1.1.1 PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=21.4 ms
באמצעות
xargs
עם
find
xargs
משמש לרוב בשילוב עם פקודת
find
. באפשרותך להשתמש
find
כדי לחפש קבצים ספציפיים ואז להשתמש ב-
xargs
כדי לבצע פעולות בקבצים אלה.
כדי להימנע מבעיות עם שמות קבצים המכילים שורות חדשות או תווים מיוחדים אחרים, השתמש תמיד באפשרות find
-print0
, הגורמת
find
להדפיס את שם הקובץ המלא ואחריו תו null. ניתן לפרש פלט זה נכון על ידי
xargs
באמצעות האפשרות
-0
, (-
--null
).
בדוגמה הבאה,
find
תדפיס את השמות המלאים של כל הקבצים בספריית
xargs
ו-
xargs
יעבירו את נתיבי הקבצים לפקודת
rm
:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
שימוש ב- xargs כדי לקצץ דמויות מרחב לבן
xargs
יכול לשמש גם ככלי להסרת
xargs
הלבן משני צידי המיתר הנתון. כל שעליך לעשות הוא
xargs
את
xargs
לפקודת
xargs
וזה יבצע את הגיזום:
echo " Long line " | xargs
Long line
זה יכול להיות שימושי כשמשווים מחרוזות בסקריפטים של קליפות.
#!/bin/bash VAR1=" Linuxize " VAR2="Linuxize" if]; then echo "Strings are equal." else echo "Strings are not equal." fi ## Using xargs to trim VAR1 if]; then echo "Strings are equal." else echo "Strings are not equal." fi
Strings are not equal. Strings are equal.
סיכום
xargs
הוא כלי שורת פקודה ב- Linux המאפשר לבנות ולבצע פקודות.
למידע מפורט יותר על כל אפשרות של
xargs
, קרא את דף האיש של xargs.
פקודת Chmod בלינוקס (הרשאות קבצים)

ב- Linux הגישה לקבצים מנוהלת באמצעות הרשאות הקבצים, התכונות והבעלות. מדריך זה מכסה כיצד להשתמש בפקודה chmod כדי לשנות את הרשאות הגישה של קבצים וספריות.
פקודת Chgrp בלינוקס (שנה קבוצה)

בלינוקס כל קובץ משויך לבעלים ולקבוצה ויש לו הרשאות הקובעות אילו משתמשים עשויים לקרוא, לכתוב או לבצע את הקובץ. הפקודה chgrpc משנה את הבעלות בקבוצה על קבצים נתונים.
פקודת Cp בלינוקס (העתקת קבצים)

cp הוא כלי שורת פקודה להעתקת קבצים וספריות במערכות יוניקס ולינוקס.