Localizando arquivos para os quais um comando falha

26

Gostaria de encontrar recursivamente todos os arquivos para os quais um script que aceita um arquivo como argumento retorna um valor diferente de zero. Alguma idéia de como fazer isso usando 'find' ou uma ferramenta semelhante?

mitanyen
fonte

Respostas:

38

findA -execação de pode ser usada para isso:

find . \! -exec yourscript {} \; -print

imprimirá os nomes de todos os arquivos para os quais yourscriptfalhar.

-execpode ser usado dessa maneira para transformar comandos externos apropriados em findtestes.

Você pode limitar os arquivos que são testados adicionando findtestes antes -exec; por exemplo, para limitar os candidatos a arquivos regulares, adicione -type f:

find . -type f \! -exec yourscript {} \; -print
Stephen Kitt
fonte
8
De forma equivalente, usando -o(ou): find . -exec yourscript {} \; -o -print.
John Kugelman apoia Monica em