mkdir toto &&cd toto
touch "bla bla"
touch "bli bli"
find . -type f -print0 | xargs --null ls -l # un seul processus ls consommant les données
find . -type f -exec ls -l {}\;# un processus ls par fichierfor f in "$(find . -type f)";do ls -l "$f";done# un processus ls par fichier
Souvent la méthode avec xargs est mieux (un seul processus lancé), sauf dans le cas où tu as beaucoup de fichiers et tu risques de dépasser la liste d'arguments maximale qu'on peut passer à un process.
# Plusieurs solutions
Posté par liberforce (site web personnel, Mastodon) . En réponse au message problème find et espaces dans les noms de fichiers. Évalué à 5. Dernière modification le 02 octobre 2019 à 18:11.
Souvent la méthode avec xargs est mieux (un seul processus lancé), sauf dans le cas où tu as beaucoup de fichiers et tu risques de dépasser la liste d'arguments maximale qu'on peut passer à un process.
Autre liste de méthodes ici:
https://stackoverflow.com/questions/9612090/how-to-loop-through-file-names-returned-by-find
Je note sur leur réponse que tu peux te passer de find en utilisant
shopt -s globstaret glober en récursif avec**/*.