Ich möchte nach Dateien suchen, die nicht zwei -name
Bedingungen entsprechen. Ich kann es so machen:
find /media/d/ -type f -size +50M ! -name "*deb" ! -name "*vmdk"
und dies wird ein korrektes Ergebnis liefern, aber kann ich diese 2 Bedingung irgendwie mit ODER verbinden?
-regex
weniger portabel als-name
.Ja, du kannst:
Erklärung aus der POSIX-Spezifikation :
Beachten Sie, dass Klammern sowohl beim Öffnen als auch beim Schließen ein Backslash (
\
) vorangestellt ist, um eine Auswertung durch die Shell zu verhindern.quelle
-exec
oder andere Maßnahmen in Bezug auf diefind
Ergebnisse ergreifen.\( \)
Andernfalls-exec
wird nur das zuletzt festgelegte-or
Kriterium berücksichtigt. Um an allen zu arbeiten, müssen Siefind \( <criterion> -o <criterion> \) -exec <command>
Sie waren der Lösung nahe:
Sie können folgende Verknüpfungsoperatoren in beliebiger Reihenfolge kombinieren:
quelle
Sie können reguläre Ausdrücke wie folgt verwenden:
Backslash ist das Escape-Zeichen.
.
Stimmt mit einem einzelnen Zeichen*
überein und dient dazu, das vorherige Zeichen null oder mehrmals übereinzustimmen. Das.*
bedeutet , dass null oder mehr Zeichen übereinstimmen.quelle