Login
Newsletter
Do, 31. Oktober 2002, 14:58

Bestimmte Pfade von find ausschließen

Wenn man mit find etwas suchen möchte, aber eine eventuell gemountete CD oder über NFS gemountete Verzeichnisse nicht berücksichtigen will, kann man diese mit folgendem Befehl ausschließen.

Beispielsweise möchte man die ganze Festplatte nach Dateien nach dem Muster *.txt durchsuchen, aber weder im Verzeichnis /mnt/server noch auf der CD suchen. Dann ist folgender Befehl hilfreich:

find / \(-path /cdrom -o -path /mnt/server \) \
-prune -o -name *.txt -print

Der Befehl ist der Übersichtlichkeit halber in zwei Zeilen geschrieben, eingeben wird man ihn normalerweise in einer Zeile, wobei der \ am Ende der ersten Zeile wegfällt.

Die "\" vor den Klammern sind wichtig, um die Klammer vor der Shell zu schützen (sonst geht's nicht).

Für jedes Verzeichnis oder Datei, die man ausschließen möchte, muss man entweder "-path verzeichnis -prune" angeben oder eben alle Verzeichnisse und Dateien in Klammern zusammenfügen: "-path verzeichnis -o -path datei -o -path nocheinedatei...) -prune"

Ich persönlich finde die Methode mit der Klammer natürlich schöner (weniger zu schreiben).

Kommentare (Insgesamt: 12 || Alle anzeigen )
geht auch kürzer... (hiker, Mi, 4. Dezember 2002)
Re: *.txt (anonymous, Sa, 9. November 2002)
*.txt (hugenay, Mi, 6. November 2002)
Sternchen... (Sickboy, Di, 5. November 2002)
Re: Alternative optionen ? (quetzal, Fr, 1. November 2002)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten