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?

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

8
In äquivalenter Weise , unter Verwendung von -o(oder): find . -exec yourscript {} \; -o -print.
John Kugelman unterstützt Monica
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.