Imprimir y actualizar la variable dentro de buscar

Imprimir y actualizar la variable dentro de buscar

Me gustaría ejecutar un findcomando y procesar los archivos que devuelve, pero también hacer un recuento de los archivos procesados ​​a medida que avanza, para tener una idea de su progreso.

En este momento, mi comando es (como ejemplo):

COUNT=0\; find . -name '*.*' -exec echo "$COUNT: \c" \; -exec echo {} \;

Pero como resultado, no consigo que el recuento se haga eco (y no sé cómo incrementarlo). Me gustaría que me diera algo como:

0: ./FileOne.txt
1: ./FileTwo.txt
...
205: ./FileTwoHundredAndFive.txt

Respuesta1

Los comandos ejecutados por findson independientes. Cada uno -execinicia un nuevo comando. No hay manera de transferir el conteo actual de un comando al siguiente, excepto almacenándolo en algún lugar (en un archivo), lo cual sería muy lento.

Puede hacer que find imprima algo cada vez que vea un archivo y canalizar la salida a un programa que cuente las líneas de entrada.

find … -print -exec 'the stuff you want to do' | nl

Esto imprimirá los recuentos después de un retraso debido al almacenamiento en búfer. VerDesactivar el almacenamiento en búfer en la tuberíaal desactivar el almacenamiento en búfer.

stdbuf -oL -eL find … -print -exec 'the stuff you want to do' | nl

información relacionada