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


26

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

Ответы:


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 поддерживает Моника
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.