Quel est le +
dans find /path/ -exec command '{}' +
do? par opposition àfind /path/ -exec command '{}' \;
Quel est le +
dans find /path/ -exec command '{}' +
do? par opposition àfind /path/ -exec command '{}' \;
Réponses:
Le «+» fait une grande ligne de commande de tous les fichiers trouvés pour minimiser le nombre de commandes à exécuter.
Étant donné le cas où une commande find trouve quatre fichiers.
find . -type f -exec command '{}' \;
produirait
command file1
command file2
command file3
command file4
D'autre part
find . -type f -exec command '{}' \+
produit
command file1 file2 file3 file4
Depuis la page de manuel:
-exec commande {} +
Cette variante de l'action -exec exécute la commande spécifiée sur les fichiers sélectionnés, mais la ligne de commande est créée en ajoutant à la fin chaque nom de fichier sélectionné; le nombre total d'appels de la commande sera bien inférieur au nombre de fichiers correspondants. La ligne de commande est construite de la même manière que xargs construit ses lignes de commande. Une seule instance de `{} 'est autorisée dans la commande. La commande est exécutée dans le répertoire de départ.
find
me donne un semi.
xargs
,-exec … {} +
fait la même chose que-print | xargs …
, mais sans les problèmes de citation (-print0 | xargs -0
c'est une autre façon, mais c'est moins portable).