GNU/Linux >> Tutoriels Linux >  >> Linux

Exemples de commandes Linux xargs

La commande xargs sous Linux/UNIX lit les éléments de l'entrée standard, délimités par des blancs ou des retours à la ligne, et exécute la commande une ou plusieurs fois avec n'importe quel argument initial.

Si aucune commande n'est fournie comme argument à xargs, la commande par défaut que l'outil exécute est un écho.

Les lignes vides sur l'entrée standard sont ignorées. Les éléments que ces xargs lisent à partir de l'entrée standard peuvent être protégés par des guillemets simples ou doubles ou une barre oblique inverse.

La commande xargs est extrêmement puissante, surtout lorsqu'elle est combinée avec des commandes comme grep ou echo. Dans ce didacticiel, nous couvrirons quelques utilisations de base de la commande xargs pour vous aider à démarrer.

Syntaxe de la commande Linux xargs

La syntaxe de la commande xargs est :


xargs [options] [command [initial-arguments]]

Vous pouvez afficher toutes les options et arguments en invoquant la commande man xargs depuis la borne. La section suivante répertorie quelques exemples de la commande args.

Exemple simple Linux xargs

La commande xargs sans aucune commande renvoie les arguments de l'entrée standard. Dans l'exemple suivant, la sortie de la commande ls est redirigée vers la commande xargs et la commande xargs sans aucune commande fait écho à la liste de fichiers dans l'entrée standard.


# ls | xargs

Xargs Exemple 1.a

L'exemple suivant montre comment la sortie de la commande echo est redirigée vers xargs et la commande xargs utilise l'argument canalisé pour créer des dossiers à l'aide de mkdir .


# echo 'one two three' | xargs mkdir

Xargs Exemple 1.b

Limiter le nombre d'arguments

Le nombre d'arguments passés à xargs est défini par la limite de votre système. Le -n switch limite le nombre d'arguments à passer à une commande donnée. La commande xargs s'exécutera en continu avec n nombre d'arguments jusqu'à ce que tous les arguments soient épuisés.

L'exemple suivant limite le nombre d'arguments lus à partir de l'entrée standard à 2. La commande Xargs continuera à lire deux arguments à la fois jusqu'à ce qu'elle finisse de les lire tous. De plus, le -t l'option imprimera la commande dans la sortie standard avant de l'exécuter.


# echo "file1 file2 file3 file4 file5" | xargs -n 2 -t touch

Xargs Exemple 2

Activer l'invite de l'utilisateur avant l'exécution

Les xargs avec -p L'option demandera à l'utilisateur avant l'exécution de la commande. L'exemple suivant montre que la commande xargs demande à l'utilisateur de saisir "Y" ou "N" avant de continuer à créer des dossiers avec chaque argument.


# echo Hello World | xargs -p mkdir
# echo one two three | xargs -p -n 1 mkdir

Xargs Exemple 3

Supprimer des fichiers avec la commande find et xargs

L'une des utilisations les plus courantes de xargs est de l'utiliser avec la commande find. Considérez une situation où vous souhaitez supprimer ou renommer un groupe de fichiers après avoir exécuté la commande find. Ici, les commandes find et xargs peuvent être utilisées ensemble sur des fichiers correspondant à certains attributs, puis supprimez-les ou renommez-les en une seule fois.

Par exemple, supposons que vous vouliez supprimer tous les fichiers dans le /tmp dossier ceux qui ont été créés au cours des cinq dernières minutes. Pour ce faire, en utilisant xargs, recherchez d'abord tous les fichiers correspondant aux critères que vous avez choisis en utilisant find commande puis dirigez la sortie vers la commande xargs qui à son tour utilisera rm commande pour les supprimer.


# find /tmp/* -cmin -5 
# find /tmp/* -cmin -5 | xargs -t rm
# find /tmp/* -cmin -5 

Xargs Exemple 4

Rechercher un motif à l'aide de xargs

Une autre utilisation puissante de la commande Xargs consiste à rechercher un modèle dans une liste de fichiers renvoyés par une autre commande unix telle que ls ou find . L'exemple suivant combine find et xargs commande dans laquelle la commande find renvoie tous les fichiers texte (.txt) du répertoire de travail actuel. Le résultat, c'est-à-dire les noms de fichiers, est ensuite redirigé vers la commande xargs où nous recherchons le mot "fichier" en utilisant grep "file" . Si le motif est présent dans les fichiers, les lignes contenant le motif seront imprimées dans le terminal avec le nom du fichier :


# find . -name "*.txt" | xargs grep "file"

Xargs Exemple 5

Exécuter plusieurs commandes avec xargs

Jusqu'à présent, nous avons vu comment la commande xargs utilise des arguments canalisés pour effectuer diverses tâches telles que renommer un lot de fichiers, rechercher un modèle, etc. Tout en faisant cela, il utilise une seule commande après l'opération canalisée. Il est également possible d'exécuter plusieurs commandes avec xargs.

Par exemple, si vous souhaitez créer plusieurs fichiers et les répertorier en même temps à l'aide de la commande xargs, exécutez la commande xargs avec -I switch suivi de la définition d'une chaîne de remplacement. Toutes les occurrences de chaîne de remplacement sont alors remplacées par l'argument passé à xargs.


# echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'

Xargs Exemple 6

Exécuter des commandes en parallèle

Dans certaines situations, vous pouvez utiliser xargs pour appeler une commande gourmande en ressources de calcul pour chaque argument. En profitant de votre machine multicœur, il est possible d'invoquer la commande en parallèle. Le -P switch le fait exactement en définissant le nombre maximum de processus. Par défaut, le nombre maximum de processus est 1.

Par exemple, la commande xargs suivante imprime le nombre de 1 à 30 en prenant 5 arguments à la fois et plus particulièrement en exécutant jusqu'à 8 processus à la fois.


# printf %s\\n {1..30} | xargs -n 5 -P 8

Xargs Exemple 7

Accepter l'entrée d'un fichier

Jusqu'à présent, nous avons vu que les entrées de la commande xargs sont lues soit à partir de l'entrée standard, soit à partir de la sortie d'autres commandes via une opération de canal. Cependant, il est également possible que la commande xargs lise directement l'entrée d'un fichier. Le -a switch vous permet de définir un fichier pour les entrées nécessaires à xargs.

La commande xargs suivante lit l'entrée d'un fichier (input.txt), puis crée des fichiers à l'aide de la commande touch.


# cat input.txt
one.txt
two.txt
# xargs -a input.txt touch

Xargs Exemple 8

Résumé

C'est tout! Bien que nous ayons couvert quelques utilisations de base de la commande XARGS, vous pouvez maintenant essayer des fonctionnalités plus avancées de XARGS pour créer une commande puissante. J'espère que vous avez aimé le message et merci de l'avoir lu.


Linux
  1. 11 exemples de commandes Xargs sous Linux

  2. Exemples de commandes sa sous Linux

  3. ac Exemples de commandes sous Linux

  4. Exemples de commandes df sous Linux

  5. du Exemples de commandes sous Linux

10 exemples de commandes iftop sous Linux

16 exemples de commandes Echo sous Linux

9 exemples de commandes tee sous Linux

9 exemples de commande diff sous Linux

Commande Xargs sous Linux

Exemples de commandes id sous Linux