Wéi lafen Kommandoen aus Standard Input Mat Tee an Xargs am Linux
Wärend der Kommandozeil benotzt, kënnt Dir direkt d'Ausgab vun engem Programm passéieren (zum Beispill e Tool dat e puer awk generéiert, fir weider Veraarbechtung), mat enger Pipeline.
Zwee vun de wichtegste Kommandozeilen Utilities déi mat Pipelines benotzt kënne fir Kommandozeilen ze bauen sinn:
xargs
- liest Streame vun Daten aus Standardinput, generéiert dann Kommandozeilen an ausféiert.Tee
- liest vum Standardinput a schreift gläichzäiteg op Standardoutput an eng oder vill Dateien. Et ass méi e Viruleedungskommando.
An dësem einfachen Artikel wäerte mir beschreiwen wéi Dir verschidde Befehle vu Standardinput bauen an ausféieren mat Päifen, Tee an Xargs Kommandoen am Linux.
Déi einfachst Syntax fir e Päif ze benotzen, déi Dir scho vläicht a Kommandoen a ville vu Linux Tutorials gesinn hutt, ass wéi follegt. Awer Dir kënnt eng méi laang Kommandozeil mat verschiddene Kommandoen bauen.
$ command1 args | command2 args OR # command1 args | command2 args | command3 args ...
Drënner ass e Beispill fir eng Pipeline ze benotzen fir den Output vum Head Kommando ze passéieren.
$ dmesg | head
Wéi benotzen ech xargs fir Kommandoen ze lafen
An dësem Beispill konvertéiert den zweete Kommando muti-Linn-Output an eng eenzeg Linn mat xargs.
$ ls -1 *.sh $ ls -1 *.sh | xargs
Fir d'Zuel vun Zeilen/Wierder/Zeechen an all Fichier an enger Lëscht ze zielen, benotzt d'Befehle hei ënnen.
$ ls *.sh | xargs wc -l #count number of lines in each file $ ls *.sh | xargs wc -w #count number of words in each file $ ls *.sh | xargs wc -c #count number of characters in each file $ ls *.sh | xargs wc #count lines, words and characters in each file
De Kommando hei drënner fënnt a rekursiv läscht den Verzeechnes mam Numm All
am aktuellen Verzeechnes.
$ find . -name "All" -type d -print0 | xargs -0 /bin/rm -rf "{}"
De Find-Kommando mat der Optioun -print0
-Aktioun erméiglecht d'Dréckerei vum ganze Verzeechneswee op der Standardausgang, gefollegt vun engem Null-Zeechen an -0 xargs
-Fändel handelt mat Raum an Dateinumm.
Dir kënnt aner praktesch xargs Kommando Benotzung Beispiller an dësen Artikelen fannen:
- Wéi kopéiert een e Fichier op Multiple Verzeechnes a Linux
- All Dateien a Verzeechnesnimm ëmbenennen op kleng Buschtawen am Linux
- 4 Weeër fir Är PNG op JPG a Vice-Versa ze konvertéieren
- 3 Weeër fir all Dateien an engem Verzeechnes ze läschen ausser een oder e puer Dateie mat Extensiounen
Wéi benotzt Tee mat Kommandoen am Linux
Dëst Beispill weist wéi Dir Kommandoausgang op Standardausgang schéckt an op eng Datei späichert; de Kommando hei drënner erlaabt Iech Top Lafen Prozesser duerch héchste Gedächtnis an CPU Benotzung am Linux ze gesinn.
$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee topprocs.txt $ cat topprocs.txt
Fir Daten an eng existent Datei(en) unzefänken, gitt de -a
Fändel.
$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee -a topprocs.txt
Dir kënnt méi Informatiounen an Tee an xargs Mann Säiten fannen.
$ man xargs $ man tee
Dat ass alles! Vergiesst net eise speziellen Artikel ze kucken: A - Z Linux Kommandoen - Iwwersiicht mat Beispiller.
An dësem Artikel hu mir beschriwwen wéi Dir Kommandozeilen mat Pipelines generéiert; xargs an Tee Kommandoen. Dir kënnt all Froen stellen oder all Gedanken iwwer de Feedbackformular hei drënner deelen.