12 exemple practice de comandă Linux Xargs pentru începători


Xargs este o comandă excelentă care citește fluxuri de date de la intrarea standard, apoi generează și execută linii de comandă; ceea ce înseamnă că poate prelua ieșirea unei comenzi și o transmite ca argument al altei comenzi. Dacă nu este specificată nicio comandă, xargs execută echo în mod implicit. Mulți îi instruiți să citească datele dintr-un fișier în loc de stdin.

Există mai multe moduri în care xargs este util în utilizarea zilnică a liniei de comandă. În acest articol, vom explica 12 exemple practice de comandă Linux xargs pentru începători.

1. Primul exemplu arată cum să aflați toate imaginile .png și să le arhivați folosind utilitarul tar, după cum urmează.

Aici, comanda de acțiune -print0 permite tipărirea căii complete a fișierului pe ieșirea standard, urmată de un caracter nul și -0 flag xargs tratează în mod eficient spațiul în numele fișierelor.

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

2. De asemenea, puteți converti ieșirea cu mai multe linii de la comanda ls într-o singură linie folosind xargs, după cum urmează.

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

3. Pentru a genera o listă compactă a tuturor conturilor de utilizator Linux de pe sistem, utilizați următoarea comandă.

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

4. Presupunând că aveți o listă de fișiere și doriți să aflați numărul de linii/cuvinte/caractere din fiecare fișier din listă, puteți utiliza comanda ls și xargs în acest scop, după cum urmează.

$ ls *upload* | xargs wc

5. Xarags vă permite, de asemenea, să găsiți și să eliminați recursiv un director, de exemplu următoarea comandă va elimina recursiv DomTerm din directorul Descărcări.

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

6. În mod similar cu comanda anterioară, puteți, de asemenea, să găsiți toate fișierele denumite net_stats în directorul curent și să le ștergeți.

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

7. Apoi, utilizați xargs pentru a copia un fișier în mai multe directoare simultan; în acest exemplu încercăm să copiem fișierul.

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

8. De asemenea, puteți utiliza comenzile de redenumire împreună pentru a redenumi toate fișierele sau subdirectoarele dintr-un anume director în minuscule, după cum urmează.

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

9. Iată un alt exemplu util de utilizare pentru xargs, care arată cum să ștergeți toate fișierele dintr-un director, cu excepția unuia sau a câtorva fișiere cu o anumită extensie.

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

10. După cum s-a menționat mai devreme, puteți instrui xargs să citească elemente dintr-un fișier în loc de intrare standard, utilizând marcatorul -a, așa cum se arată.

$ xargs -a rss_links.txt

11. Puteți activa verbozitatea folosind indicatorul -t, care îi spune xargs să imprime linia de comandă pe rezultatul de eroare standard înainte de a o executa.

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

12. În mod prestabilit, xargs termină/delimitează elementele utilizând spații goale, puteți folosi indicatorul -d pentru a seta delimitatorul care poate fi un un singur caracter, un caracter de escape în stil C, cum ar fi \n, sau un cod de escape octal sau hexazecimal.

În plus, puteți, de asemenea, să solicitați utilizatorului dacă să ruleze fiecare linie de comandă și să citească o linie de pe terminal, folosind indicatorul -p așa cum se arată (pur și simplu tastați y pentru da sau n pentru nu).

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

Pentru mai multe informații, citiți pagina de manual xargs.

$ man xargs 

Atât deocamdată! Xargs este un utilitar puternic pentru construirea unei linii de comandă; vă poate ajuta să treceți rezultatul unei comenzi ca argument al altei comenzi pentru procesare. În acest articol, am explicat 12 exemple practice de comandă xargs pentru începători. Împărtășiți-vă gândurile sau întrebările cu noi prin intermediul formularului de feedback de mai jos.