12 Exemples pratiques de la commande Linux Xargs pour les débutants

12 Exemples pratiques de la commande Linux Xargs pour les débutants

Xargs est une excellente commande qui lit les flux de données à partir de l'entrée standard, puis génère et exécute des lignes de commande; ce qui signifie qu'il peut prendre la sortie d'une commande et la passer 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.

Il y a plusieurs façons dont xargs est utile dans l'utilisation quotidienne de la ligne de commande. Dans cet article, nous expliquerons 12 exemples de commande pratiques Linux Xargs pour les débutants.

1. Le premier exemple montre comment découvrir tous les .PNG images et les archiver en utilisant l'utilité du goudron comme suit.

Ici, la commande d'action -print0 Permet l'impression du chemin complet du fichier sur la sortie standard, suivi d'un caractère nul et -0 Le drapeau Xargs traite efficacement l'espace dans les noms de fichiers.

$ trouver des photos / tecmint / -Name "*.png "-Type F -print0 | xargs -0 TAR -CVZF Images.le goudron.gz 
Trouvez des images et des archives à l'aide de goudron

2. Vous pouvez également convertir la sortie muti-ligne de la commande LS en ligne unique en utilisant xargs comme suit.

$ ls -1 images / tecmint / $ ls -1 images / tecmint / | xargs 
Liste des fichiers en ligne unique

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 
Trouver la liste des utilisateurs de Linux

4. En supposant que vous avez 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 
Comptez le nombre de lignes, de mots et de caractères dans les fichiers

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

$ Find Téléchargements -name "Domterm" -Type D -print0 | xargs -0 / bin / rm -v -rf "" 
Trouver et supprimer récursivement le répertoire

6. De même à la commande précédente, vous pouvez également trouver tous les fichiers nommés net_stats dans le répertoire actuel et les supprimer.

$ trouver . -Nom "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 ./ Modèles / ./ Documents / | xarg -n 1 cp -v ./ Téléchargements / sic_template.xlsx 
Copier le fichier dans plusieurs répertoires

8. Vous pouvez également utiliser la commande Find, xargs et renommer les commandes ensemble pour renommer tous les fichiers ou sous-répertoires dans un répertoire particulier à minuscules comme suit.

$ trouver des documents -depth | xargs -n 1 rename -v 's / (.*) \ / ([^ \ /] *) / $ 1 \ / \ l $ 2 / ' \; 

9. Voici un autre exemple d'utilisation utile pour xargs, Il montre comment supprimer tous les fichiers dans un répertoire sauf un ou quelques fichiers avec une extension donnée.

$ trouver . -type f -not -name '* gz' -print0 | xargs -0 -i  rm -v  

dix. Comme mentionné précédemment, vous pouvez instruire xargs pour lire les éléments d'un fichier au lieu d'une entrée standard en utilisant le -un Flag comme indiqué.

$ xarg -a rss_links.SMS 

11. Vous pouvez permettre la verbosité en utilisant le -t Flag, qui raconte xargs Pour imprimer la ligne de commande sur la sortie d'erreur standard avant de l'exécuter.

$ Find Téléchargements -name "Domterm" -Type D -print0 | xargs -0 -t / bin / rm -rf "" 

12. Par défaut, xargs termine / délimite les éléments à l'aide d'espaces vides, vous pouvez utiliser le -d drapeau pour définir le délimiteur qui peut être un seul caractère, une évasion de caractère de style C tel que \ n, ou un code d'évasion octal ou hexadécimal.

De plus, vous pouvez également inciter l'utilisateur à exécuter chaque ligne de commande et à lire une ligne à partir du terminal, en utilisant le -p Flag comme indiqué (Tapez simplement y pour Oui ou n pour Non).

$ echo ./ Modèles / ./ Documents / | xargs -p -n 1 cp -v ./ Téléchargements / sic_template.xlsx 
Utilisateur rapide avant d'exécuter la commande

Pour plus d'informations, lisez le xargs page.

$ man xargs 

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