Znajdowanie plików, dla których polecenie nie działa


26

Chciałbym rekurencyjnie znaleźć wszystkie pliki, dla których skrypt, który akceptuje plik jako argument, zwraca wartość niezerową. Masz pomysł, jak to zrobić, używając narzędzia „znajdź” lub podobnego narzędzia?

Odpowiedzi:


38

findDo tego -execmożna użyć akcji:

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

wypisze nazwy wszystkich plików, których yourscriptnie powiodło się.

-execmożna wykorzystać w ten sposób, aby zamienić odpowiednie polecenia zewnętrzne w findtesty.

Możesz ograniczyć pliki, które są testowane, dodając findwcześniej testy -exec; na przykład, aby ograniczyć kandydatów do zwykłych plików, dodaj -type f:

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

8
Równoważnie, stosując -o(a) find . -exec yourscript {} \; -o -print.
John Kugelman wspiera Monikę
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.