GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande Linux xargs

Présentation

Certaines commandes Linux prennent en entrée à la fois l'entrée standard (stdin) et un argument de ligne de commande. Cependant, d'autres sont conçus pour accepter l'entrée uniquement comme argument. Pour pouvoir traiter l'entrée standard, ces commandes Linux doivent utiliser le xargs commande.

Dans ce didacticiel, vous apprendrez à utiliser Linux xargs commande pour manipuler l'entrée standard et travailler avec d'autres commandes.

Prérequis

  • Un système exécutant Linux
  • Accès à la ligne de commande

Qu'est-ce que la commande xargs ?

Les xargs command construit et exécute les commandes fournies via l'entrée standard. Il prend l'entrée et la convertit en argument de commande pour une autre commande. Cette fonctionnalité est particulièrement utile dans la gestion de fichiers, où xargs est utilisé en combinaison avec rm , cp , mkdir , et d'autres commandes similaires.

Comment utiliser la commande xargs avec des exemples

Lorsqu'il est utilisé seul, xargs invite l'utilisateur à saisir une chaîne de texte qu'il transmet ensuite au echo commande.

L'exemple montre un exemple d'entrée, suivi de la sortie du echo commande.

Combiner xargs avec find

La commande find précède souvent xargs dans une canalisation. Utilisez-le pour fournir une liste de fichiers pour un traitement ultérieur par xargs . La syntaxe ressemble à ceci :

find [location] -name "[search-term]" -type f | xargs [command]

L'exemple ci-dessus illustre l'utilisation de find commande pour trouver tous les fichiers avec le .sh extension. La liste des fichiers est ensuite redirigée vers xargs , qui utilise le rm commande pour les supprimer.

Cependant, xargs n'inclut pas automatiquement les fichiers contenant des espaces vides dans leurs noms. Pour inclure également ces fichiers, utilisez le -print0 option pour find , et le -0 option pour xargs :

find [location] -name "[search-term]" -type f -print0 | xargs -0 [command]

rm supprime maintenant tous les fichiers avec le .sh extension.

Combiner xargs avec grep

Utilisez xargs avec la commande grep pour rechercher une chaîne dans la liste des fichiers fournis par le find commande.

find . -name '[search-term]' | xargs grep '[string-to-find-in-files]'

L'exemple ci-dessus a recherché tous les fichiers avec le .txt extension et les a dirigés vers xargs , qui a ensuite exécuté le grep commande sur eux.

Commandes multiples Xargs

Pour exécuter plusieurs commandes avec xargs , utilisez le -I option. La syntaxe est :

[command-providing-input] | xargs -I % sh -c '[command-1] %; [command-2] %'

Dans l'exemple, le contenu de file4.txt ont été affichés en premier. Puis mkdir créé un dossier pour chaque mot du fichier.

Lire les éléments du fichier

Comme mentionné précédemment, xargs lit l'entrée standard. Utilisez le -a option pour lire le contenu d'un fichier à la place.

xargs -a [filename]

Rechercher et archiver des images à l'aide de tar

Lorsqu'il est utilisé avec la commande tar, xargs crée un tar.gz archive et le remplit avec les fichiers fournis par le find commande.

find [location] -name "[search-term]" -type f -print0 | xargs -0 tar -cvzf [tar-gz-archive-name]

Commande d'impression

Pour voir les commandes exécutées par xargs en sortie standard, utilisez le -t option.

[command-providing-input] | xargs -t [command]

Dans l'exemple ci-dessus, notez que xargs exécuté la commande mkdir sur toute la chaîne fournie par echo .

Approuver l'exécution de la commande xargs

Quelques xargs les opérations, telles que la suppression de fichiers et de dossiers, sont irréversibles. Pour contrôler l'exécution de ces commandes, utilisez le -p option.

[command-providing-input] | xargs -p [command]

Lorsque vous exécutez la commande avec le -p option, xargs affiche une ligne de confirmation avant de l'exécuter. Tapez y pour continuer, ou n pour annuler l'opération.

Limite de sortie par ligne

Parfois il faut contrôler le nombre d'arguments xargs prend en même temps. Effectuez cette action en utilisant le -n option suivie du nombre d'arguments que vous limitez xargs à :

[command-providing-input] | xargs -n [number] [command]

Dans l'exemple ci-dessous, xargs prend la chaîne de l'echo commande et la divise en trois. Ensuite, il exécute un autre echo pour chacune des parties :

Spécifier le délimiteur

Le xargs par défaut le délimiteur est un espace vide. Pour changer le délimiteur par défaut, utilisez le -d commande suivie d'un seul caractère ou d'un caractère d'échappement tel que n (une nouvelle ligne).

[command-providing-input] | xargs -d [new-delimiter] | xargs [command]

Dans l'exemple ci-dessous, les xargs commande indique au système d'utiliser * comme délimiteur et appliquez mkdir à chacun des arguments obtenus.

Répertorier tous les comptes utilisateur Linux sur le système

Utilisez xargs pour organiser la sortie des commandes, comme cut . Prenons l'exemple suivant :

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

La commande cut accède au /etc/passwd fichier et utilise le : délimiteur pour couper le début de chaque ligne dans le fichier. La sortie est ensuite redirigée vers sort , qui trie les chaînes reçues, et enfin à xargs qui les affiche :

Supprimer les espaces vides dans la chaîne

Depuis xargs ignore les espaces vides lors de la recherche d'arguments, la commande est utile pour supprimer les espaces vides inutiles des chaînes.

echo "[string-with-unnecessary-spaces]" | xargs

Liste du nombre de lignes/mots/caractères dans chaque fichier

Utilisez xargs avec la commande wc pour afficher une liste de fichiers avec le nombre de lignes, de mots et de caractères.

ls | xargs wc

L'exemple ci-dessous indique à la commande ls de diriger vers xargs uniquement les fichiers contenant le mot « exemple ». xargs puis appliqué wc à cette liste :

Copier le fichier dans plusieurs répertoires

Copiez les fichiers dans plusieurs répertoires à l'aide de xargs commande. La syntaxe est simple :

echo [directory-1] [directory-2] | xargs -n 1 cp -v [filename]

L'echo La commande fournit des noms de répertoires et xargs utilise la commande cp pour copier le fichier donné dans chacun des répertoires.


Linux
  1. Comment utiliser la commande Linux sed

  2. Comment utiliser la commande Linux grep

  3. Comment utiliser la commande history sous Linux

  4. Comment utiliser la commande Su sous Linux

  5. Comment utiliser la commande id sous Linux

Comment utiliser la commande Linux Top

Comment utiliser la commande fd sur le système Linux

Comment utiliser la commande wget sous Linux ?

Comment utiliser la commande xargs sous Linux ?

Comment utiliser la commande RPM sous Linux

Comment utiliser la commande which sous Linux