12 Linux Xargs komandas praktiski piemēri iesācējiem


Xargs ir lieliska komanda, kas nolasa datu plūsmas no standarta ievades, pēc tam ģenerē un izpilda komandrindas; kas nozīmē, ka tas var iegūt komandas izvadi un nodot to kā citas komandas argumentu. Ja komanda nav norādīta, pēc noklusējuma xargs izpilda atbalss. Jūs daudzi arī uzdodat nolasīt datus no faila, nevis stdin.

Ir vairāki veidi, kā xargs ir noderīgi komandrindas ikdienas lietošanā. Šajā rakstā mēs izskaidrosim 12 praktiskus Linux xargs komandu piemērus iesācējiem.

1. Pirmajā piemērā parādīts, kā uzzināt visus .png attēlus un arhivēt tos, izmantojot tar utilītu šādi.

Šeit darbības komanda -print0 ļauj drukāt visu faila ceļu uz standarta izejas, kam seko nulles rakstzīme, un karodziņš -0 xargs efektīvi nodarbojas ar vietu failu nosaukumos.

$ find Pictures/tecmint/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gz

2. Varat arī konvertēt komandrindas izvades no ls komandu vienā rindā, izmantojot xargs šādi.

$ ls -1 Pictures/tecmint/
$ ls -1 Pictures/tecmint/ | xargs

3. Lai izveidotu kompaktu visu sistēmas Linux lietotāju kontu sarakstu, izmantojiet šo komandu.

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

4. Pieņemot, ka jums ir failu saraksts un vēlaties uzzināt rindu/vārdu/rakstzīmju skaitu katrā sarakstā esošajā failā, šim nolūkam varat izmantot komandu ls un xargs šādi.

$ ls *upload* | xargs wc

5. Xarags arī ļauj jums atrast un rekursīvi noņemt direktoriju, piemēram, šī komanda rekursīvi noņems DomTerm direktorijā Lejupielādes.

$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"

6. Līdzīgi kā iepriekšējā komandā, jūs varat arī atrast visus failus ar nosaukumu net_stats pašreizējā direktorijā un tos izdzēst.

$ find . -name "net_stats" -type f -print0 | xargs -0 /bin/rm -v -rf "{}"

7. Pēc tam izmantojiet xargs, lai kopētu failu vienlaikus vairākos direktorijos; šajā piemērā mēs mēģinām kopēt failu.

$ echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx 

8. Varat arī izmantot komandas pārdēvēt, lai visus konkrētā direktorijā esošos failus vai apakšdirektorijus pārdēvētu par mazajiem burtiem šādi.

$ find Documnets -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

9. Šeit ir vēl viens noderīgs xargs izmantošanas piemērs. Tas parāda, kā izdzēst visus direktorijā esošos failus, izņemot vienu vai dažus failus ar noteiktu paplašinājumu.

$ find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}

10. Kā minēts iepriekš, jūs varat uzdot xargs lasīt vienumus no faila, nevis standarta ievades, izmantojot karodziņu -a , kā parādīts.

$ xargs -a rss_links.txt

11. Verbalitāti varat iespējot, izmantojot karodziņu -t , kas liek xargs pirms izpildīšanas izdrukāt komandrindu uz standarta kļūdas izejas.

$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"

12. Pēc noklusējuma xargs pārtrauc/atdala objektus, izmantojot tukšas atstarpes. Varat izmantot karodziņu -d , lai iestatītu atdalītāju, kas var būt viena rakstzīme, C veida rakstzīmju aizbēgšana, piemēram, vai astoņstūra vai heksadecimālā aizbēgšanas kods.

Turklāt jūs varat arī pamudināt lietotāju par to, vai palaist katru komandrindu un lasīt līniju no termināla, izmantojot karodziņu -p , kā parādīts (vienkārši ierakstiet y jā vai n nē).

$ echo ./Templates/ ./Documents/ | xargs -p -n 1 cp -v ./Downloads/SIC_Template.xlsx 

Lai iegūtu papildinformāciju, izlasiet xargs rokasgrāmatas lapu.

$ man xargs 

Pagaidām tas ir viss! Xargs ir spēcīga lietderība komandrindas izveidei; tas var palīdzēt jums nodot vienas komandas izvadi kā citas komandas argumentu apstrādei. Šajā rakstā mēs esam izskaidrojuši 12 praktiskus xargs komandu piemērus iesācējiem. Dalieties savās domās vai jautājumos, izmantojot zemāk esošo atsauksmju veidlapu.