Using xargs in Linux
Tartalomjegyzék:
- Hogyan kell használni a Linux
xargsparancsot - A parancs megtekintése és a felhasználó kérése
- Az érvek számának korlátozása
- Több parancs futtatása
- Hogyan határozhatunk meg elválasztót
- Hogyan lehet elemeket olvasni a fájlból
xargshasználata afind- Xargs használata a szóköz karakterek kivágásához
- Következtetés
Az
xargs
segédprogram lehetővé teszi a parancsok készítését és végrehajtását a szokásos bemenetből. Általában a csöveken keresztül más parancsokkal kombinálva használják.
Az
xargs
segítségével argumentumként megadhatja a bemeneti parancssori segédprogramokat, például az
mkdir
és az
rm
.
Ebben az oktatóanyagban bemutatjuk az
xargs
parancs használatának alapjait.
Hogyan kell használni a Linux
xargs
parancsot
xargs
beolvassa az argumentumokat a szabványos bemenetről, üres szóközökkel vagy új sorokkal elválasztva, és végrehajtja a megadott parancsot az input parancs argumentumaként. Ha nem adunk parancsot, akkor az alapértelmezés a
/bin/echo
.
Az
xargs
parancs szintaxisa a következő:
xargs]
Az
xargs
használatának legalapvetőbb példája az lesz, hogy több, a szóközökkel elválasztott karakterláncot
xargs
egy cső segítségével az
xargs
és futtasson egy parancsot, amely ezeket a karakterláncokat használja argumentumként.
echo "file1 file2 file3" | xargs touch
A fenti példában a szokásos bemenetet
xargs
az
xargs
, és az
touch
parancsot minden argumentumhoz futtatjuk, három fájlt hozva létre. Ez ugyanaz, mintha futtatná:
A parancs megtekintése és a felhasználó kérése
A parancsnak a terminálra történő nyomtatásához a végrehajtás előtt használja a
-t
(
--verbose
) opciót:
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
Írja be az
y
vagy
Y
a parancs megerősítéséhez és futtatásához:
touch file1 file2 file3 ?…y
Ez az opció akkor hasznos, ha romboló parancsokat hajt végre.
Az érvek számának korlátozása
Alapértelmezés szerint a parancsnak átadott argumentumok számát a rendszer korlátja határozza meg.
Az
-n
(
--max-args
) opció megadja az adott parancshoz továbbítandó argumentumok számát.
xargs
annyiszor futtatja a megadott parancsot, ameddig az összes argumentum kimerül.
A következő példában a szabványos bemenetről beolvasott argumentumok száma 1-re korlátozódik.
echo "file1 file2 file3" | xargs -n 1 -t touch
Mint az alábbiakban látható részletes kimenetből látható, az érintés parancsot minden argumentumra külön-külön végrehajtják:
touch file1 touch file2 touch file3
Több parancs futtatása
Több parancs futtatásához
xargs
segítségével használja az
-I
opciót. Úgy működik, hogy az
-I
opció után definiálja a
replace-str
parancsot, és a
-I
replace-str
minden előfordulása helyébe az xargs átadott argumentum lép.
A következő
xargs
példa két parancsot fog futtatni, először az
touch
használatával hozza létre a fájlokat, majd felsorolja a fájlokat az
ls
paranccsal:
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
A
replace-str
általános választása a
%
. Használhat azonban egy másik helyőrzőt, például az
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
Hogyan határozhatunk meg elválasztót
A
-d
(
--delimiter
) opcióval állíthat be egy egyedi határolót, amely lehet egyetlen karakter vagy egy
\
--delimiter
kezdődő menekülési sorozat.
A következő példát használjuk
;
határolóként:
echo "file1;file2;file3" | xargs -d ; -t touch
Hogyan lehet elemeket olvasni a fájlból
Az xargs parancs fájlokat is olvashat a szokásos bemenet helyett. Ehhez használja az
-a
(
--arg-file
) opciót, amelyet a fájlnév követ.
A következő példában az
xargs
parancs elolvassa az
ips.txt
fájlt, és ping minden IP-címet.
8.8.8.8 1.1.1.1
Az
-L 1
opciót is használjuk, amely arra utasítja az
xargs
hogy olvassa el egy sort egyszerre. Ha ezt az opciót kihagyják, az
xargs
az összes IP-t egyetlen
ping
parancsnak adja át.
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
használata a
find
xargs
ot leggyakrabban a
find
paranccsal kombinálva használják. A
xargs
segítségével kereshet bizonyos fájlokat, majd az
xargs
segítségével hajthatja végre a fájlokat.
Az új sorokat vagy más speciális karaktereket tartalmazó fájlnevekkel kapcsolatos problémák elkerülése érdekében mindig használja a find
-print0
beállítást, amely miatt a
find
a teljes fájlnevet, majd egy null karaktert nyomtatja ki. Ezt a kimenetet az
xargs
a
-0
, (
--null
) opcióval helyesen értelmezheti.
A következő példában a
find
kinyomtatja az
/var/www/.cache
könyvtárban lévő fájlok teljes nevét, és az
xargs
átadja a fájl elérési útjait az
rm
parancsnak:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
Xargs használata a szóköz karakterek kivágásához
xargs
eszközként is felhasználható a szóköz elhagyására az adott karakterlánc mindkét oldaláról. Egyszerűen csőzze be a karakterláncot az
xargs
parancsra, és ez elvégzi a vágást:
echo " Long line " | xargs
Long line
Ez hasznos lehet, ha a karakterláncokat összehasonlítja a shell parancsfájlokban.
#!/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.
Következtetés
xargs
egy parancssori segédprogram Linuxon, amely lehetővé teszi parancsok készítését és végrehajtását.
Az
xargs
bővebben az xargs man oldalon olvashat.
Chmod parancs a linuxban (fájljogosultságok)
Linux alatt a fájlokhoz való hozzáférést a fájljogosultságokon, attribútumokon és tulajdonjogon keresztül kezelik. Ez az oktatóanyag ismerteti, hogyan lehet a chmod parancsot használni a fájlok és könyvtárak hozzáférési engedélyeinek megváltoztatásához.
Chgrp parancs a linuxban (csoport módosítása)
Linuxban minden fájl társítva van egy tulajdonoshoz és egy csoporthoz, és rendelkezik olyan engedélyekkel, amelyek meghatározzák, hogy mely felhasználók olvashatják, írhatják vagy végrehajthatják a fájlt. A chgrpc parancs megváltoztatja az adott fájlok csoporttulajdonát.
Cp parancs a linuxban (fájlok másolása)
A cp parancssori segédprogram a fájlok és könyvtárak másolására Unix és Linux rendszereken.







