GNU/Linux >> Znalost Linux >  >> Linux

Příklady příkazů Linuxu xargs

Příkaz xargs v Linuxu/UNIXu čte položky ze standardního vstupu, odděleného mezerami nebo novými řádky, a provede příkaz jednou nebo vícekrát s libovolnými počátečními argumenty.

Pokud není pro xargs zadán žádný příkaz, pak výchozí příkaz, který nástroj provede, je echo.

Prázdné řádky na standardním vstupu jsou ignorovány. Položky, které tyto xargy čtou ze standardního vstupu, mohou být chráněny dvojitými nebo jednoduchými uvozovkami nebo zpětným lomítkem.

Příkaz xargs je extrémně výkonný, zvláště v kombinaci s příkazy jako grep nebo echo. V tomto tutoriálu probereme několik základních použití příkazu xargs, abyste s ním mohli začít.

Linuxová syntaxe příkazu xargs

Syntaxe příkazu xargs je:


xargs [options] [command [initial-arguments]]

Všechny možnosti a argumenty můžete zobrazit vyvoláním příkazu man xargs z terminálu. Následující část uvádí několik příkladů příkazu args.

Jednoduchý příklad Linux xargs

Příkaz xargs bez jakéhokoli příkazu opakuje argumenty ve standardním vstupu. V následujícím příkladu je výstup z příkazu ls převeden do příkazu xargs a příkaz xargs bez jakéhokoli příkazu opakuje seznam souborů na standardním vstupu.


# ls | xargs

Příklad Xargs 1.a

Následující příklad ukazuje, jak je výstup příkazu echo zprostředkován do xargs a příkaz xargs používá zřetězený argument k vytvoření složek pomocí mkdir .


# echo 'one two three' | xargs mkdir

Příklad Xargs 1.b

Omezit počet argumentů

Počet argumentů předávaných xargům je definován limitem vašeho systému. -n switch omezuje počet argumentů, které mají být předány danému příkazu. Příkaz xargs poběží nepřetržitě s n počet argumentů, dokud nebudou vyčerpány všechny argumenty.

Následující příklad omezuje počet argumentů přečtených ze standardního vstupu na 2. Příkaz Xargs bude pokračovat ve čtení dvou argumentů najednou, dokud nedokončí čtení všech. Dále -t volba vypíše příkaz na standardní výstup před jeho provedením.


# echo "file1 file2 file3 file4 file5" | xargs -n 2 -t touch

Příklad Xargs 2

Povolit uživatelskou výzvu před spuštěním

Xargs s -p volba vyzve uživatele před provedením příkazu. Následující příklad ukazuje, že příkaz xargs vyzve uživatele buď k zadání „Y“ nebo „N“, než bude pokračovat ve vytváření složek s každým argumentem.


# echo Hello World | xargs -p mkdir
# echo one two three | xargs -p -n 1 mkdir

Příklad Xargs 3

Smažte soubory pomocí příkazu find a xargs

Jedním z nejběžnějších použití xargs je použití s ​​příkazem find. Zvažte situaci, kdy chcete odstranit nebo přejmenovat spoustu souborů po spuštění příkazu find. Zde lze oba příkazy find a xargs použít společně na soubory, které odpovídají určitým atributům, a poté je najednou odstranit nebo přejmenovat.

Předpokládejme například, že chcete smazat všechny soubory v /tmp složky, které byly vytvořeny během posledních pěti minut. Chcete-li to provést pomocí xargs, nejprve pomocí find zjistěte všechny soubory, které odpovídají zvoleným kritériím a poté výstup nasměrujte do příkazu xargs, který zase použije rm příkaz k jejich odstranění.


# find /tmp/* -cmin -5 
# find /tmp/* -cmin -5 | xargs -t rm
# find /tmp/* -cmin -5 

Příklad Xargs 4

Vyhledejte vzor pomocí xargs

Dalším účinným využitím příkazu Xargs je hledání vzoru v seznamu souborů vrácených jiným unixovým příkazem, jako je ls nebo find . Následující příklad kombinuje find a xargs kde příkaz find vrací všechny textové (.txt) soubory z aktuálního pracovního adresáře. Výsledek, tj. názvy souborů, jsou pak převedeny do příkazu xargs, kde hledáme slovo 'soubor' pomocí grep "file" . Pokud je vzor v souborech, pak se řádky obsahující vzor vytisknou v terminálu spolu s názvem souboru:


# find . -name "*.txt" | xargs grep "file"

Příklad Xargs 5

Spouštějte více příkazů pomocí xargs

Doposud jsme viděli, jak příkaz xargs používá zřetězené argumenty k provádění různých úkolů, jako je přejmenování dávky souborů, hledání vzoru a tak dále. Při provádění těchto operací používá jeden příkaz po operaci potrubí. Je také možné spouštět více příkazů spolu s xargs.

Pokud například chcete vytvořit více souborů a vypsat je současně pomocí příkazu xargs, spusťte příkaz xargs s -I přepínač následovaný definováním náhradního řetězce. Všechny výskyty náhradního řetězce jsou pak nahrazeny argumentem předaným xargs.


# echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'

Příklad Xargs 6

Paralelní provádění příkazů

V některých situacích můžete použít xargs k vyvolání výpočetně náročného příkazu pro každý argument. Využitím výhod vašeho vícejádrového stroje je možné vyvolat příkaz paralelně. -P switch to přesně dělá tím, že definuje maximální počet procesů. Ve výchozím nastavení je maximální počet procesů 1.

Například následující příkaz xargs vypíše číslo 1 až 30 tak, že vezme 5 argumentů najednou a především spustí až 8 procesů najednou.


# printf %s\\n {1..30} | xargs -n 5 -P 8

Příklad Xargs 7

Přijmout vstup ze souboru

Doposud jsme viděli, že vstupy pro příkaz xargs jsou čteny buď ze standardního vstupu, nebo z výstupu jiných příkazů pomocí operace potrubí. Je však také možné, aby příkaz xargs četl vstup ze souboru přímo. -a přepínač umožňuje definovat soubor pro vstupy potřebné pro xargs.

Následující příkaz xargs čte vstup ze souboru (input.txt) a poté vytváří soubory pomocí dotykového příkazu.


# cat input.txt
one.txt
two.txt
# xargs -a input.txt touch

Příklad Xargs 8

Shrnutí

To je vše! Přestože jsme popsali několik základních použití příkazu XARGS, nyní můžete vyzkoušet pokročilejší funkce XARGS a vytvořit výkonný příkaz. Doufám, že se vám příspěvek líbil a děkuji za přečtení.


Linux
  1. 11 Příklady příkazů Xargs v Linuxu

  2. sa Příklady příkazů v Linuxu

  3. Příklady příkazů ac v Linuxu

  1. Příklady příkazů df v Linuxu

  2. du příklady příkazů v Linuxu

  3. Příklady příkazů xargs v Linuxu

  1. 7 Příklady příkazů Linux df

  2. 8 Příklady příkazů Linux TR

  3. Příklady příkazů rm v Linuxu