Zum Inhalt springen

Find/Anwendungen/Suchbereich

Aus Foxwiki
Version vom 13. September 2025, 13:18 Uhr von Dirkwagner (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Suchbereich

Startverzeichnis

Suche alle Dateien und Verzeichnisse im übergeordneten Verzeichnis

$ find ../

Suche in einem ganz anderen Verzeichnis beginnen (im absoluten Pfad /tmp)

$ find /tmp

Suche in zwei Verzeichnissen (sucht sowohl in /tmp als auch in /boot)

$ find /tmp /boot

Suche ab root (/)

$ find /
  • Sucht im Wurzelverzeichnis alle Dateien und alle Unterverzeichnisse
  • das kann je nach Größe des Dateisystems und der gemounteten Dateisysteme dauern

Verzeichnistiefe

Sie können die Ergebnisse von find mit der Option -maxdepth einschränken

  • Wenn Sie zum Beispiel jede JavaScript-Datei in Ihrem Wordpress-Verzeichnis finden wollen, würden Sie Folgendes verwenden:
find wordpress -name *js

Was aber, wenn Sie nur sehen wollen, ob es JavaScript-Dateien im obersten Verzeichnis gibt?

  • Das können Sie mit -maxdepth einschränken: find wordpress -maxdepth 1 -name *js
  • Damit wird nur das wordpress-Verzeichnis durchsucht, nicht aber die Unterverzeichnisse
  • Eine Änderung von -maxdepth auf 2 würde Unterverzeichnisse im wordpress-Verzeichnis durchsuchen, aber deren Unterverzeichnisse ausschließen
$ find -maxdepth 3

steigt bei der Suche nur 3 Verzeichnisebenen herab

-depth

bearbeitet den Inhalt jedes Verzeichnisses vor dem Verzeichnis selbst

-maxdepth Ebenen

steigt bis zu der gegebenen Zahl von Ebenen im Verzeichnisbaum auf (in der Hierarchie ab); bei 0 Ebenen werden die Tests nur auf die in der Kommandozeile übergebenen Dateien und Verzeichnisnamen angewandt

-maxdepth <n>

Suche nach Dateien, die sich maximal n Verzeichnisebenen unter dem angegebenen Verzeichnis befinden

-mindepth Ebenen

steigt mindestens die gegebene Zahl von Ebenen im Verzeichnisbaum auf (in der Hierarchie ab); bei einer Ebene werden die in der Kommandozeile genannten Dateien und Verzeichnisnamen nicht bearbeitet

-mindepth <n>

Gehe mindestens <n> Verzeichnisebenen unter das angegebene Verzeichnis zurück, bevor die Suche gestartet wird

Verzeichnisse ausschließen

Verzeichnisse ausschließen

Symbolische Links

Die Optionen -H, -L und -P bestimmen den Umgang mit symbolischen Links

  • Darauf folgende Kommandozeilenparamter müssen die Datei- oder Verzeichnisnamen sein, die untersucht werden sollen
  • Das erste Argument, das mit einem -, einer Klammer (, ), einem Komma , oder einem Ausrufezeichen ! beginnt, wird als Anfang eines Ausdrucks interpretiert, der bestimmt, wonach gesucht wird
  • Alle Argumente davor werden als Verzeichnisnamen angesehen
  • Wenn kein Verzeichnis angegeben ist, wird das aktuelle Verzeichnis genommen
  • Wenn keine Aktion angegeben ist, wird die Aktion -print ausgeführt (es wird stattdessen empfohlen -print0 zu verwenden)
-P

Keinen symbolischen Links folgen

  • Dies ist das Standardverhalten
  • Wenn find eine Datei untersucht oder Informationen über diese ausgibt, und die Datei ein symbolischer Link ist, dann werden die Informationen von dem symbolischen Link selbst verwendet
-L

Symbolischen Links folgen

  • Wenn find eine Datei untersucht oder Informationen über diese ausgibt, dann werden die Informationen von der Datei verwendet, auf die der symbolische Link verweist (es sei denn, der Link ist kaputt oder find nicht in der Lage ist, die Datei zu untersuchen, auf die der Link zeigt)
  • Die Verwendung dieser Option impliziert die Option -noleaf
  • Wenn Sie später die Option -P verwenden, wird -noleaf immer noch Auswirkungen zeigen
  • Wenn -L aktiv ist und find einen symbolischen Link zu einem Unterverzeichnis während seiner Suche findet, wird das Unterverzeichnis durchsucht, auf das der symbolische Link zeigt
  • Wenn die Option -type immer auf den Typ der Datei angewandt, auf die ein symbolischer Link zeigt, anstatt auf den Link selbst (es sei denn, der symbolische Link ist kaputt)
  • Die Verwendung von -L bewirkt, dass die Prädikate -lname und -ilname immer logisch falsch zurückliefern
-H

Keinen symbolischen Links folgen, es sei denn …* ...die Parameter in der Kommandozeile werden ausgewertet

  • Wenn find Dateien auswertet oder Informationen über diese ausgibt, werden die verwendeten Informationen vom symbolischen Link selbst benutzt werden
  • Die einzige Ausnahme dieses Verhaltens ist, wenn eine in der Kommandozeile angegebene Datei ein symbolischer Link ist und dem Link gefolgt werden kann
  • In dieser Situation werden die Informationen der Datei genommen, auf die der symbolische Link verweist
  • Die Informationen über den Link selbst dienen als Fall-Back für den Fall, dass die Datei, auf die der Link zeigt, nicht untersucht werden kann
  • Wenn -H aktiv ist und einer der Pfade in der Kommandozeile ein symbolischer Link zu einem Verzeichnis ist, werden die Inhalte dieses Verzeichnisses untersucht (wobei natürlich -maxdepth 0 das verhindern kann)
-follow

Veraltet

  • Verwenden Sie die Option -L stattdessen
  • Dereferenziert symbolische Links
  • Impliziert -noleaf
  • Wenn die Option -H oder -L nicht angegeben wird, ändert die Position von -follow das Verhalten des Prädikats -newer
  • Alle Dateien, die als Argumente von -newer aufgeszählt sind, werden dereferenziert, wenn es sich bei ihnen um symbolische Links handelt
  • Das gleiche gilt für -anewer und -cnewer
  • Genauso wird das Prädikat -type immer auf den Typ der Datei angewandt, auf den der symbolische Link zeigt und nicht auf den Link selbst
  • Die Verwendung von -follow hat zur Folge, dass die Prädikate -lname und -ilname immer logisch falsch zurückliefern

Dateisysteme

-xdev

durchsucht keine Verzeichnisse in anderen Dateisystemen/Partitionen

-fstype Typ

die Datei ist in einem Dateisystem vom angegebenen Typ; unter anderem werden minix, msdos, ext und proc erkannt