J'ai lu ici que vous pouvez compter le nombre d'appels de commandin -exec command {} +en canalisant | wc -ljusqu'à la fin.
Bien que je comprenne que -execdirc'est différent, en ce que, pour chaque sous-répertoire correspondant qui finddécouvre, il exécute une invocation du commanddepuis le sous-répertoire dans lequel il est contenu, si j'ai plus d'un fichier qui correspond dans un sous-répertoire, ne devrait pas 'ai-je fini avec le nombre d'appels égal au nombre de sous-répertoires correspondants, et non pas le nombre d'invocations correspondant au nombre de fichiers correspondants dans ces sous-répertoires?
Je me retrouve avec ce dernier lorsque je lance ce qui suit:
$ find . -name "bob*" -execdir echo {} + | wc -l
La page de manuel pour les execdir command {} +états que le premier devrait être le cas:
Comme pour l'
-execaction, la+forme de-execdirva construire une ligne de commande pour traiter plus d'un fichier correspondant, mais toute invocation donnée decommandne listera que les fichiers qui existent dans le même sous-répertoire.
c'est à dire
Je suis en train:
./file1inDir1
./file2inDir1
./file3InDir2
./file4InDir3
Quand je m'attends à cela, basé sur la page de manuel:
./file1inDir1 ./file2inDir1
./file3InDir2
./file4InDir3
echoet que les arguments sont générés par{} +et que vous n'avez pas de nouvelles lignes dans vos noms de fichiers (la plupart des gens n'en ont pas) ALORS le nombre de lignes est le nombre d'appels et cela fonctionne. Si le commandement est dit,head -n 999000 /dev/urandomcela tourne horriblement mal.