Utilisation de l'opérateur de centile dans les scripts shell

0

Dans ce lien: https://superuser.com/a/180252/401901

La commande suivante est utilisée:

cat list.txt | xargs -I % echo cp % new_folder

Que signifie l' % %usage?

Tous les résultats de recherche Google concernent son utilisation dans une opération modulo. Ou est-ce que je le cherche de manière incorrecte?

De plus, existe-t-il un nom pour ce type d'utilisation?

Je vous remercie!

Sravi
la source

Réponses:

1

De man xargs:

   -I replace-str
          Replace  occurrences  of  replace-str in the initial-arguments with names read
          from standard input.  Also, unquoted blanks do not terminate input items;  in‐
          stead the separator is the newline character.  Implies -x and -L 1.

Donc, il %s’agit de la partie de la commande qui est remplacée par la liste des fichiers.

l0b0
la source
Oui. Ce signe% n'est pas une sorte d'opérateur de shell, il est simplement utilisé par xargs en tant que chaîne de substitution afin que xargs sache où insérer les chaînes acheminées via stdin. Lorsque j'utilise xargs, j'utilise généralement "HERE" comme chaîne pour -I ou -J, ce qui indique plus clairement qu'il ne s'agit que d'une chaîne pour indiquer à xargs "d'insérer l'entrée juste ICI dans cette ligne de commande".
Spiff