12 exemples pràctics de l'ordre Xargs de Linux per a principiants


Xargs és una ordre fantàstica que llegeix fluxos de dades d'entrada estàndard, després genera i executa línies d'ordres; és a dir, pot prendre la sortida d'una ordre i la passa com a argument d'una altra ordre. Si no s'especifica cap ordre, xargs executa echo per defecte. Molts també li indiqueu que llegeixi dades d'un fitxer en lloc de stdin.

Hi ha diverses maneres en què xargs és útil en l'ús diari de la línia d'ordres. En aquest article, explicarem 12 exemples pràctics d'ordres Linux xargs per a principiants.

1. El primer exemple mostra com esbrinar totes les imatges .png i arxivar-les mitjançant la utilitat tar de la manera següent.

Aquí, l'ordre d'acció -print0 permet imprimir la ruta completa del fitxer a la sortida estàndard, seguida d'un caràcter nul i el senyalador -0 xargs s'ocupa de manera efectiva de l'espai en els noms de fitxer.

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

2. També podeu convertir la sortida multilínia de l'ordre ls en una sola línia utilitzant xargs de la següent manera.

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

3. Per generar una llista compacta de tots els comptes d'usuari de Linux del sistema, utilitzeu l'ordre següent.

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

4. Suposant que teniu una llista de fitxers i voleu saber el nombre de línies/paraules/caràcters de cada fitxer de la llista, podeu utilitzar ls command i xargs per a aquest propòsit de la següent manera.

$ ls *upload* | xargs wc

5. Xarags també us permet trobar i eliminar de manera recursiva un directori, per exemple, l'ordre següent eliminarà de manera recursiva DomTerm al directori Descàrregues.

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

6. De manera similar a l'ordre anterior, també podeu trobar tots els fitxers anomenats net_stats al directori actual i suprimir-los.

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

7. A continuació, utilitzeu xargs per copiar un fitxer a diversos directoris alhora; en aquest exemple estem intentant copiar el fitxer.

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

8. També podeu utilitzar les ordres de canvi de nom junts per canviar el nom de tots els fitxers o subdirectoris d'un directori concret en minúscules de la manera següent.

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

9. Aquí hi ha un altre exemple d'ús útil per a xargs, que mostra com esborrar tots els fitxers d'un directori excepte un o pocs fitxers amb una extensió determinada.

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

10. Com s'ha esmentat anteriorment, podeu indicar als xargs que llegeixin els elements d'un fitxer en lloc de l'entrada estàndard utilitzant el senyalador -a tal com es mostra.

$ xargs -a rss_links.txt

11. Podeu habilitar la verbositat utilitzant el senyalador -t, que indica a xargs que imprimeixi la línia d'ordres a la sortida d'error estàndard abans d'executar-la.

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

12. De manera predeterminada, xargs acaba/delimita els elements utilitzant espais en blanc, podeu utilitzar el senyalador -d per establir el delimitador que pot ser un sol caràcter, un caràcter d'escapada d'estil C com ara \n, o un codi d'escapada octal o hexadecimal.

A més, també podeu demanar a l'usuari si ha d'executar cada línia d'ordres i llegir una línia des del terminal, utilitzant el senyalador -p tal com es mostra (simplement escriviu y per sí o n per no).

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

Per obtenir més informació, llegiu la pàgina de manual de xargs.

$ man xargs 

Això és tot de moment! Xargs és una potent utilitat per construir una línia d'ordres; us pot ajudar a passar la sortida d'una ordre com a argument d'una altra ordre per processar-la. En aquest article, hem explicat 12 exemples pràctics de comandaments xargs per a principiants. Comparteix els teus pensaments o preguntes amb nosaltres mitjançant el formulari de comentaris que hi ha a continuació.