He leído aquí que se puede contar el número de invocaciones de commanden -exec command {} +canalizando | wc -lal final de la misma.
Si bien entiendo que -execdires diferente, en eso, para cada subdirectorio coincidente que finddescubre, ejecuta una invocación del commandsubdirectorio que contiene, si tengo más de un archivo que coincida en un subdirectorio, debería ¿Acabo con el número de invocaciones igual al número de subdirectorios coincidentes, y no el número de invocaciones que coinciden con el número de archivos coincidentes en esos subdirectorios?
Estoy terminando con este último cuando ejecuto lo siguiente:
$ find . -name "bob*" -execdir echo {} + | wc -l
La página del manual para los execdir command {} +estados que el primero debería ser el caso:
Al igual que con la
-execacción, la+forma del-execdircreará una línea de comando para procesar más de un archivo coincidente, pero cualquier invocación decommandsolo enumerará los archivos que existen en el mismo subdirectorio.
es decir
Me estoy poniendo:
./file1inDir1
./file2inDir1
./file3InDir2
./file4InDir3
Cuando espero esto, según la página del manual:
./file1inDir1 ./file2inDir1
./file3InDir2
./file4InDir3
echoy los argumentos son generados por{} +y no tiene nuevas líneas en sus nombres de archivo (la mayoría de las personas no las tienen) ENTONCES el número de líneas es el número de invocaciones y funciona. Si el comando es decirhead -n 999000 /dev/urandom, va terriblemente mal.