Suchen von Dateien, für die ein Befehl fehlschlägt

26

Ich möchte rekursiv alle Dateien finden, für die ein Skript, das eine Datei als Argument akzeptiert, einen Wert ungleich Null zurückgibt. Haben Sie eine Idee, wie Sie dies mit 'find' oder einem ähnlichen Tool tun können?

Mitanyen
quelle

Antworten:

38

findDie -execAktion von kann dazu verwendet werden:

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

Gibt die Namen aller Dateien aus, für die ein yourscriptFehler aufgetreten ist.

-execkann auf diese Weise verwendet werden, um geeignete externe Befehle in findTests umzuwandeln.

Sie können die getesteten Dateien einschränken, indem Sie findzuvor Tests hinzufügen -exec. Um beispielsweise die Kandidaten auf reguläre Dateien zu beschränken, fügen Sie Folgendes hinzu -type f:

find . -type f \! -exec yourscript {} \; -print
Stephen Kitt
quelle
8
In äquivalenter Weise , unter Verwendung von -o(oder): find . -exec yourscript {} \; -o -print.
John Kugelman unterstützt Monica