Recherche de site Web

12 exemples pratiques de commande Linux Xargs pour les débutants


Xargs est une excellente commande qui lit des flux de données à partir d'une entrée standard, puis génère et exécute des lignes de commande ; ce qui signifie qu'il peut prendre le résultat d'une commande et le transmettre comme argument d'une autre commande. Si aucune commande n'est spécifiée, xargs exécute echo par défaut. Vous lui demandez également de lire les données d'un fichier au lieu de stdin.

xargs est utile de plusieurs manières dans l'utilisation quotidienne de la ligne de commande. Dans cet article, nous expliquerons 12 exemples pratiques de commandes Linux xargs pour les débutants.

1. Le premier exemple montre comment trouver toutes les images .png et les archiver à l'aide de l'utilitaire tar comme suit.

Ici, la commande d'action -print0 permet d'imprimer le chemin complet du fichier sur la sortie standard, suivi d'un caractère nul et l'indicateur -0 xargs gère efficacement l'espace dans les noms de fichiers.

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

2. Vous pouvez également convertir la sortie multiligne de la commande ls en une seule ligne en utilisant xargs comme suit.

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

3. Pour générer une liste compacte de tous les comptes d'utilisateurs Linux sur le système, utilisez la commande suivante.

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

4. En supposant que vous disposez d'une liste de fichiers et que vous souhaitez connaître le nombre de lignes/mots/caractères dans chaque fichier de la liste, vous pouvez utiliser la commande ls et xargs à cet effet comme suit.

ls *upload* | xargs wc

5. Xarags vous permet également de rechercher et de supprimer récursivement un répertoire, par exemple la commande suivante supprimera récursivement DomTerm dans le répertoire Téléchargements.

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

6. De la même manière que pour la commande précédente, vous pouvez également rechercher tous les fichiers nommés net_stats dans le répertoire actuel et les supprimer.

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

7. Ensuite, utilisez xargs pour copier un fichier dans plusieurs répertoires à la fois ; dans cet exemple, nous essayons de copier le fichier.

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

8. Vous pouvez également utiliser les commandes find, xargs et rename ensemble pour renommer tous les fichiers ou sous-répertoires d'un répertoire particulier en minuscules comme suit.

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

9. Voici un autre exemple d'utilisation utile de xargs, il montre comment supprimer tous les fichiers d'un répertoire à l'exception d'un ou quelques fichiers avec une extension donnée.

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

10. Comme mentionné précédemment, vous pouvez demander à xargs de lire les éléments d'un fichier au lieu de l'entrée standard en utilisant l'indicateur -a comme indiqué.

xargs -a rss_links.txt

11. Vous pouvez activer la verbosité à l'aide de l'indicateur -t, qui indique à xargs d'imprimer la ligne de commande sur la sortie d'erreur standard avant de l'exécuter.

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

12. Par défaut, xargs termine/délimite les éléments en utilisant des espaces vides, vous pouvez utiliser l'indicateur -d pour définir le délimiteur qui peut être un caractère unique, un caractère d'échappement de style C tel que \n ou un code d'échappement octal ou hexadécimal.

De plus, vous pouvez également demander à l'utilisateur s'il doit exécuter chaque ligne de commande et lire une ligne depuis le terminal, en utilisant l'indicateur -p comme indiqué (tapez simplement y pour oui ou n pour non).

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

Pour plus d'informations, lisez la page de manuel xargs.

man xargs 

C'est tout pour le moment! Xargs est un utilitaire puissant pour créer une ligne de commande ; cela peut vous aider à transmettre la sortie d'une commande comme argument d'une autre commande pour le traitement. Dans cet article, nous avons expliqué 12 exemples pratiques de commandes xargs pour les débutants. Partagez vos réflexions ou vos questions avec nous via le formulaire de commentaires ci-dessous.