Não se esqueça de xargs
!
Seu exemplo invocaria um novo processo de shell para cada arquivo encontrado.
Eu preferiria isso:
find ... | xargs stat -c "Blah: %a"
find
mostra uma lista de todos os itens encontrados, xargs
lê uma lista de argumentos em stdin
e executa seu parâmetro com esses argumentos na linha de comando, construindo uma linha de comando o maior tempo possível.
Isso funciona porque stat
, como a maioria dos outros comandos / programas apropriados, usa qualquer número de parâmetros. (compare ls
, rm
e echo
por exemplo)
Se você acha absolutamente necessário iniciar um novo processo para cada arquivo, use xargs -n 1
para passar o parâmetro 1
para cada comando.
Dessa forma você pode imitar os métodos ineficientes como este:
find ... | xargs -n 1 stat -c "Blah: %a"
(Tente em um sistema de arquivos grande em um computador lento e tempo as diferenças!)