ben, de la meme facon que l’on utilise more, less ou grep, avec le caractère |
seulement xargs permet d’executer une commande en placant la sortie du resultat ou l’on veut…
ls -la | grep toto va affichier que les lignes ou se trouvent le mot “toto”
ls | xargs -t -i{} rm {} va supprimer tous les fichiers
on peut ecrire cette meme commande comme cela il me semble car par defaut xargs ajoute la sortie en fin de ligne
ls | xargs rm ce qui revient a taper ceci pour chaque fichier du repertoire courrant
rm nomdefichier
dans le cas d’une copie, le nom du fichier donné par ls n’est pas utilisé en fin de ligne pour cela, on dit a xargs de remplacer une chaine de caractere (les accolades, ca peut etre autre chose… c’est défini avec le -i) par la sortie de la commande avant le pipe…
donc ls | xargs -t -i{} cp {} /tmp/ revient a taper
cp nomdefichier /temp/ pour chaque fichier du repertoire courrant…
en fait xargs est vraiment un outil génial, utile pour les scripts surtout et les dossiers ayant trop de fichiers (quand les outils tels que cp mv chown chgrp indiquent “liste d’argument trop longue”)