Příkaz xargs nám umožňuje předat výstup jednoho příkazu jako vstup pro jiný příkaz, aniž bychom museli výstup zapisovat do souboru.
Některým úlohám, které mohou vyžadovat použití více příkazů, které křížově odkazují na výstupy z jiných příkazů, výrazně pomůže použití xargs. Pojďme se dnes podívat na pochopení příkazu a některá použití příkazu.
Co je xargs?
Xargs umožňuje předat výstupy jako vstup jinému příkazu. Zatímco příkaz jako grep umožňuje uživateli používat vstupy jako parametry, xargs ukazuje jeho důležitost tím, že umožňuje, aby vstup byl ve formě argumentů.
Tento příkaz se téměř vždy používá v kombinaci s jinými příkazy pomocí potrubí. Pojďme pochopit základní použití příkazu.
Základy příkazu xargs v Linuxu
Nejlepší způsob, jak porozumět jakémukoli příkazu, je pochopit jeho syntaxi. Zde je návod, jak vypadá syntaxe příkazu xargs v Linuxu.
xargs [option] [command]
Zde může být [příkaz] jakýkoli příkaz(y), který si přejeme provést na našem standardním vstupu. Pokud příkazy nespecifikujeme, nástroj xargs použije výchozí příkaz.
Výchozí příkaz pro nástroj xargs je „echo“.
Nástroj xargs umožňuje několik možností, jak diktovat, jak jsou příkazy sestavovány a prováděny. Zde je seznam některých běžně používaných možností, které nabízí nástroj xargs v Linuxu.
Možnost | Efekt |
-0 | Tato volba se používá k určení nástroje xargs, že položky ve standardním vstupním řetězci jsou ukončeny znakem NULL místo mezerou. |
-a název souboru | Číst ze souboru |
-r | Nespouštět, pokud je vstup prázdný |
-d delim | Určete oddělovač |
-x | Konec, pokud je vstupní velikost zadaná pomocí -s je překročen. |
-I nahradit-str | Toto se používá k deklaraci řetězce jako replace-str. Poté jsou všechny výskyty replace-str zaměněny parametrem nebo argumentem ze standardního vstupu. |
–help | Tato možnost se používá k zobrazení zprávy nápovědy pro nástroj xargs. To zahrnuje všechny možné možnosti, které lze použít s nástrojem xargs. |
Zatímco tento seznam pokrývá základní možnosti používané v nástroji xargs. Nezapomeňte prozkoumat manuálovou stránku pro xargs.
Pomocí příkazu xargs
Nyní jsme pochopili příkaz xargs v Linuxu a jeho parametry. Je čas využít tyto znalosti pro aplikaci nástroje xargs. V tomto tutoriálu si projdeme několik příkladů, abychom se naučili používat nástroj xargs.
Výchozí chování xargs
Jak jsme již zmínili dříve, příkaz xargs spustí příkaz echo ve výchozím nastavení pro vstupní argumenty, pokud za ním není zadán žádný příkaz.
Podívejme se na to v akci, abychom ověřili naše tvrzení.
ls -ls | xargs
Jak můžete vidět na výše uvedeném snímku obrazovky, výstup příkazu ls se při průchodu příkazem echo a xargs vytiskne bez zalomení řádků a formátování.
Vytvoření více adresářů pomocí souboru se seznamem jmen
Pokud máte seznam jmen na jednom řádku, můžete zkopírovat a vložit názvy adresářů oddělené mezerami a příkaz mkdir adresáře vytvoří.
Co když ale máme soubor se seznamem všech jmen adresářů, které chceme vytvořit? Podívejme se, jak můžeme vytvořit více adresářů ze seznamu názvů adresářů.
cat <filename> | xargs mkdir
Jak můžete vidět na výše uvedeném snímku obrazovky, pokusili jsme se přímo nasměrovat výstup příkazu cat do mkdir a selhali. Ale s přidáním xargs jsme byli schopni provést příkaz a úspěšně vytvořit adresáře.
Najít soubory obsahující konkrétní řetězec
Grep může vyhledávat řetězce v souborech nebo výstupní zprávy. Ale neumí vyhledávat soubory. Příkaz find může vyhledávat soubory, ale ne jejich obsah. Příkaz xargs může pomoci propojit obojí dohromady.
find <search directory> -name "<name>" | xargs grep -E 'fatal|Warning'
Hledali jsme soubor „syslog“ v adresáři /var/log a hledali jsme řádky obsahující slova „fatal“ nebo „Warning“. Protože jsme znali soubor, který v tomto případě chceme, mohli jsme jej přímo předat grep. Pokud bychom ale neznali cestu k souboru, lze k nalezení souboru použít příkaz find a předat cesty grep.
Odstranění souborů se specifickými příponami
Stejně jako vytváření a identifikace souborů a adresářů je nástroj xargs také užitečný při odstraňování souborů z vašeho systému. V tomto příkladu smažeme všechny textové soubory v našem aktuálním adresáři.
find <path> -name <filename> | xargs rm -rf
Zde najít příkaz nejprve vyhledá soubory s příponou .txt. Tento výstup je poté odeslán do rm příkaz.
Tento příkaz převezme soubory z najít příkaz a smaže je. Výstup úspěšného provedení tohoto příkazu by měl být podobný tomu, který je uveden níže.
Závěr
Příkaz xargs v Linuxu je mocný nástroj pro vytváření a spouštění příkazů pomocí standardního vstupu z příkazového řádku. Zefektivňuje používání příkazového řádku tím, že vám umožňuje použít výstup jednoho příkazu místo argumentu v jiném příkazu.
Tento nástroj příkazového řádku je pravidelně široce používán začátečníky i zkušenými uživateli Linuxu.
Doufáme, že vám tento tutoriál pomohl porozumět příkazu xargs v Linuxu. V tomto tutoriálu jsme probrali pouze základní použití nástroje xargs, takže si příkaz prozkoumejte sami.
Máte-li jakékoli připomínky, dotazy nebo návrhy, neváhejte se na nás obrátit v komentářích níže.