Syntaxe

xargs est une commande UNIX puissance qui permet de récupérer les arguments passés par la commande précédante. Il permet d'éviter des structures lourdes comme :

[commande] | while read param
do
[traitement]
done

A la place, nous avons quelque chose de plus simple, de plus condensé :

[commande] | xargs [traitement]

Exemples

exemple : cp

Copier la liste des fichiers .txt dans un répertoire :

ls -1 ${repertoire_source}/*.txt | xargs -i -t cp {} ${repertoire_cible}

Copier la liste des fichiers .txt dans un répertoire cible depuis un répertoire relatif :

ls -1 ${repertoire_source}/*.txt | xargs -i -t cp {} ${repertoire_cible}

exemple : mv

Renommer tous les fichiers *.txt d'un répertoire :

ls -1 ${repertoire}/*.txt | xargs -i -t mv {} {}.csv

exemple : rm

Supprimer tous les fichiers *.txt d'un répertoire :

ls -1 ${repertoire}/*.txt | xargs rm -f

exemple : basename

La commande basename n'apprécie pas trop les files. Pour remédier à ce problème, après un ls, par exemple, il faut :

ls -1 ${repertoire}/*.txt | xargs basename