GNU/Linux >> Znalost Linux >  >> Linux

Jak používat příkaz xargs pro Linux

Úvod

Některé příkazy Linuxu přebírají vstup jak ze standardního vstupu (stdin), tak jako argument příkazového řádku. Jiné jsou však navrženy tak, aby vstupy braly pouze jako argument. Aby bylo možné zpracovat standardní vstup, musí tyto příkazy Linuxu používat xargs příkaz.

V tomto tutoriálu se naučíte používat Linux xargs příkaz pro manipulaci se standardním vstupem a práci s dalšími příkazy.

Předpoklady

  • Systém se systémem Linux
  • Přístup k příkazovému řádku

Co je příkaz xargs?

xargs příkaz vytváří a provádí příkazy poskytované prostřednictvím standardního vstupu. Vezme vstup a převede ho na argument příkazu pro jiný příkaz. Tato funkce je užitečná zejména při správě souborů, kde xargs se používá v kombinaci s rm , cp , mkdir a další podobné příkazy.

Jak používat příkaz xargs s příklady

Při samostatném použití xargs vyzve uživatele k zadání textového řetězce, který pak předá echo příkaz.

Příklad ukazuje příklad vstupu, za nímž následuje výstup echo příkaz.

Kombinovat xargs s find

Příkaz find často předchází xargs v potrubí. Použijte jej k poskytnutí seznamu souborů pro další zpracování pomocí xargs . Syntaxe vypadá takto:

find [location] -name "[search-term]" -type f | xargs [command]

Výše uvedený příklad ukazuje použití find k nalezení všech souborů s .sh rozšíření. Seznam souborů je poté přesměrován do xargs , který používá rm příkaz k jejich odstranění.

Nicméně xargs nezahrnuje automaticky soubory, které ve svých názvech obsahují mezery. Chcete-li zahrnout i tyto soubory, použijte -print0 možnost find a -0 možnost pro xargs :

find [location] -name "[search-term]" -type f -print0 | xargs -0 [command]

rm nyní smaže všechny soubory s .sh rozšíření.

Kombinovat xargs s grep

Použijte xargs pomocí příkazu grep k vyhledání řetězce v seznamu souborů, který poskytuje find příkaz.

find . -name '[search-term]' | xargs grep '[string-to-find-in-files]'

Výše uvedený příklad hledal všechny soubory s .txt a přenesl je do xargs , který poté provedl grep příkaz na nich.

Vícenásobné příkazy Xargs

Spuštění více než jednoho příkazu pomocí xargs , použijte -I volba. Syntaxe je:

[command-providing-input] | xargs -I % sh -c '[command-1] %; [command-2] %'

V příkladu obsah file4.txt byly zobrazeny jako první. Poté mkdir vytvořil složku pro každé slovo v souboru.

Čtení položek ze souboru

Jak již bylo zmíněno, xargs přečte standardní vstup. Použijte -a možnost číst místo toho obsah souboru.

xargs -a [filename]

Vyhledání a archivace obrázků pomocí tar

Při použití s ​​příkazem tar xargs vytvoří tar.gz archivovat a naplní jej soubory, které poskytuje find příkaz.

find [location] -name "[search-term]" -type f -print0 | xargs -0 tar -cvzf [tar-gz-archive-name]

Příkaz pro tisk

Chcete-li zobrazit příkazy prováděné xargs ve standardním výstupu použijte -t možnost.

[command-providing-input] | xargs -t [command]

Ve výše uvedeném příkladu si všimněte, že xargs provedl příkaz mkdir na celém řetězci poskytnutém echo .

Schválit provedení příkazu xargs

Některé xargs operace, jako je odstranění souborů a složek, jsou nevratné. Chcete-li ovládat provádění těchto příkazů, použijte -p možnost.

[command-providing-input] | xargs -p [command]

Když provedete příkaz s -p možnost, xargs zobrazí potvrzovací řádek před jeho provedením. Zadejte y pokračovat, nebo n pro zrušení operace.

Omezit výstup na řádek

Někdy je potřeba kontrolovat počet argumentů xargs bere ve stejnou dobu. Tuto akci proveďte pomocí -n možnost následovaná počtem argumentů, které omezujete xargs komu:

[command-providing-input] | xargs -n [number] [command]

V níže uvedeném příkladu xargs převezme řetězec z echo příkaz a rozdělí jej na tři. Poté provede další echo pro každou z částí:

Určete oddělovač

Výchozí xargs oddělovač je prázdné místo. Chcete-li změnit výchozí oddělovač, použijte -d příkaz následovaný jedním znakem nebo znakem escape, například n (nový řádek).

[command-providing-input] | xargs -d [new-delimiter] | xargs [command]

V níže uvedeném příkladu xargs příkaz dává systému pokyn, aby použil * jako oddělovač a použijte mkdir na každý ze získaných argumentů.

Seznam všech uživatelských účtů Linuxu v systému

Použijte xargs k uspořádání výstupu příkazů, jako je cut . Zvažte následující příklad:

cut -d: -f1 < /etc/passwd | sort | xargs

Příkaz cut přistupuje k /etc/passwd a používá : oddělovač pro oříznutí začátku každého řádku v souboru. Výstup je poté přesměrován do sort , který seřadí přijaté řetězce, a nakonec na xargs který je zobrazí:

Odstranění prázdných mezer v řetězci

Od xargs ignoruje prázdná místa při hledání argumentů, příkaz je užitečný pro odstranění zbytečných mezer z řetězců.

echo "[string-with-unnecessary-spaces]" | xargs

Seznam počtu řádků/slov/znaků v každém souboru

Použijte xargs pomocí příkazu wc zobrazíte seznam souborů s počtem řádků, slov a znaků.

ls | xargs wc

Níže uvedený příklad nařídil příkazu ls, aby přešel do xargs pouze soubory obsahující slovo „příklad“. xargs poté použil wc do tohoto seznamu:

Kopírovat soubor do více adresářů

Zkopírujte soubory do více adresářů pomocí xargs příkaz. Syntaxe je jednoduchá:

echo [directory-1] [directory-2] | xargs -n 1 cp -v [filename]

echo příkaz poskytuje názvy adresářů a xargs používá příkaz cp ke zkopírování daného souboru do každého z adresářů.


Linux
  1. Jak používat příkaz sed pro Linux

  2. Jak používat Linuxový příkaz grep

  3. Jak používat příkaz historie v Linuxu

  1. Jak používat Su Command v Linuxu

  2. Jak používat příkaz id v Linuxu

  3. Jak používat příkaz „screen“ v Linuxu

  1. Jak používat příkaz sudo v Linuxu

  2. Jak používat Linux na Command

  3. Jak používat příkaz locate v Linuxu