Поиск файлов, для которых команда не выполняется

26

Я хотел бы рекурсивно найти все файлы, для которых скрипт, который принимает файл в качестве аргумента, возвращает ненулевое значение. Любая идея, как сделать это с помощью «найти» или аналогичного инструмента?

mitanyen
источник

Ответы:

38

find«S -execдействия могут быть использованы для этого:

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

напечатает имена всех файлов, для которых yourscriptне удается.

-execможно использовать для превращения соответствующих внешних команд в findтесты.

Вы можете ограничить количество проверяемых файлов, добавив findтесты ранее -exec; например, чтобы ограничить кандидатов обычными файлами, добавьте -type f:

find . -type f \! -exec yourscript {} \; -print
Стивен Китт
источник
8
Эквивалентно, используя -o(или): find . -exec yourscript {} \; -o -print.
Джон Kugelman поддерживает Моника