Esta é uma pergunta semelhante a link . Estou citando as duas formas mais prováveis de como alcançar seu objetivo.
A maneira mais fácil é usar xargs
, mas isso funciona somente se você não tiver espaço em nenhum caminho que o comando find
possa encontrar:
find … -print0 | xargs -0 -n1 invalid_command
Você também pode se livrar de encontrar e usar globalização recursiva ou implementar uma pesquisa recursiva por conta própria (duvido que sua árvore de diretórios seja profunda o suficiente para causar um problema) se você estiver preso a um Bash mais antigo (abaixo 4.xx ).
shopt -s globstar
set -e
for x in **/*.xml; do invalid_command "$x"; done
Além disso, se você não precisa que seja um one-liner, você pode primeiro encontrar todos os diretórios, salvá-los, por exemplo. para um arquivo temporário (use mktemp
para isso), e então faça qualquer coisa que você precisa com a lista. Filtre mais, execute comandos neles ...