GNU/Linux >> Tutoriels Linux >  >> Linux

quelle est la différence entre xargs avec et sans accolades sous linux

xargs rm invoquera rm avec tous les arguments comme paramètre départ avec des espaces.

xargs -i{} rm {} invoquera rm {} pour chacun des arguments et {} sera remplacé par l'argument actuel.

Si vous avez 2 arguments a.txt et b.txt , xargs rm appellera ça

rm a.txt b.txt

Mais xargs -i{} rm {} appellera

rm a.txt
rm b.txt

C'est parce que -i l'option implique -L 1 option qui signifie la commande rm ne prendra que 1 ligne à chaque fois. Et ici chaque ligne ne contient qu'un seul argument.

Consultez ce lien Ideone pour en savoir plus.


Avec des accolades, il générera un rm processus par fichier. Sans les accolades, xargs transmettra autant de noms de fichiers que possible à chaque rm commande.

Comparer

ls | xargs echo

et

ls | xargs -i echo '{}'

L'option -i (équivalente à --replace) crée une sorte d'espace réservé où xargs stocke l'entrée qu'il vient de recevoir. Dans votre deuxième commande, l'espace réservé est "{}", cela fonctionne comme l'option find -exec. Une fois défini, xargs remplacera cet espace réservé par la ligne entière d'entrée. Si vous n'aimez pas le nom "{}", vous pouvez définir le vôtre :

ls | xargs -iPLACEHOLDER echo PLACEHOLDER

Dans votre cas, les deux commandes produisent le même résultat. Dans le second formulaire, vous ne faites qu'expliciter le comportement par défaut avec l'option -i.


Linux
  1. Quoi de neuf avec rdiff-backup ?

  2. Qu'est-ce que Podman et comment installer Podman sous Linux

  3. Qu'est-ce que NFS et comment l'installer sous Linux

  4. Rechercher un fichier avec les commandes Rechercher et Localiser sous Linux

  5. Sous Linux, quelle métrique a une route sans métrique ?

Comment ajouter des référentiels à Red Hat Linux avec et sans proxy

Commande Linux Tail :qu'est-ce que c'est et comment l'utiliser

Commande Diff sous Linux avec exemples

Quelle est la différence entre Linux et Unix ?

Qu'est-ce que Crontab et comment automatiser des tâches sous Linux avec Crontab

Qu'est-ce que Git et comment installer Git sous Linux