find
-ception:
find . -maxdepth 1 -mindepth 1 -type d -print0 | xargs -0 -L1 -P0 -i find {} -type f -name '*.pptx'
find . -maxdepth 1 -type f -name '*.pptx'
-
-maxdepth 1
-mindepth 1
restringe a pesquisa ao conteúdo imediato do diretório. Procuramos todos os subdiretórios (-type d
). - Em seguida, usamos
xargs
para executarfind
em todos os subdiretórios.-0
em combinação com-print0
cuida de quaisquer caracteres especiais que possam ocorrer em nomes de arquivos. -
-P0
informaxargs
para executar o máximo defind
s em paralelo. Você pode restringi-lo para executar no máximo N processos usando-PN
. - Por fim, como já executamos
find
em todos os subdiretórios, finalmente executamos umfind
no diretório atual (e apenas no diretório atual - daí-maxdepth 1
).
Palavra de cautela: find
provavelmente será intensivo em I / O. Há apenas muito benefício que você pode obter ao executar várias instâncias em paralelo.
Além disso, a saída dos muitos find
s pode ficar confusa, reduzindo assim a utilidade dessa abordagem.