Es gibt Befehlsparameter find
zum Suchen von Dateien bzw. Verzeichnissen -f
und -d
, aber ich möchte vermeiden, zwei find
Befehle und &&
oder ||
dazwischen zu schreiben.
Ich möchte mit einem Befehl eine Datei oder ein Verzeichnis (je nachdem, was bedingt gefunden wird) finden. Kann -d
dies mit -f
ODER verknüpft werden?
Antwort1
Nutzen Sie die -o
Option.
Von demfindenManpage (unter der Überschrift OPERATORS):
expr1 -o expr2 Or; expr2 is not evaluated if expr1 is true.
Antwort2
-f
Wenn Sie weder noch angeben -d
, find
zeigt Ihnen mit alle Inode-Typen (Dateien, Verzeichnisse, Geräte, Links usw.) an. Wenn Sie nur Dateien und Verzeichnisse möchten, verwenden Sie -o
und ggf. Escape-Klammern, wenn Sie andere Arten von Bedingungen verwenden möchten.
Beispielsweise alle Dateien, Verzeichnisse, Links usw.... die in den letzten 2 Tagen geändert/erstellt wurden:
find . -iname '*blah*' -mtime -2
Wie oben, aber ausschließlich Dateien und Verzeichnisse (keine symbolischen Links, Geräte …)
find . -iname '*blah*' \( -type d -o -type f \) -mtime -2