Dateien finden und erkennen mit -

Linux bietet mächtige Programme an, um Dateien im Dateisystem zu finden und deren Typ zu erkennen. Dieser hier besprochenen Befehl ist auf allen Linux-Systemen der Welt zu finden und gehören zu den wichtigsten Werkzeug eines Systemverwalters.

Datein finden mit find

/usr/bin/find

Linux hat zwar nur einen Dateibaum, der kann aber ausgesprochen komplex aufgebaut sein und manchmal hunderttausende Dateien in tausenden von Verzeichnissen enthalten. Es ist daher nötig, diese Dateien nach bestimmten Kriterien suchen zu können, ohne von Hand die einzelnen Verzeichnisse zu „durchwandern“.

Diese Aufgabe wird vom Befehl find erledigt. find bietet aber neben der Fähigkeit Dateien zu suchen auch noch an, beliebige Aktionen mit den gefundenen Dateien auszuführen. Aus diesem Grund ist dieses Programm ein unentbehrliches Hilfsmittel für jeden Systemvewalter.

Die genauen Parameter, Tests und Aktionen von find sind auf der man Handbuchseite aufgelistet, hier soll noch einmal in Beispielen erklärt werden, wie find aufgerufen wird und wie man damit vernünftig arbeiten kann.

Die einfache Aufrufform von find ist:

find [Startverzeichnis] [-Option…] [-Test…] [-Aktion…]

find - Optinen und Aktionen

Beschreibung:

find durchsucht eine oder mehrere Verzeichnishierarchien nach Dateien mit bestimmten Eigenschaften, und führt damit bestimmte Aktionen aus. Die Eigenschaften können durch Tests bestimmt werden.

Optionen, Tests und Aktionen können mit Operatoren zusammengefasst werden. find bewertet für jede Datei in den Verzeichnishierarchien die Optionen, Tests und Aktionen von links nach rechts, bis ein falscher Wahrheitswert auftaucht oder die Kommandozeilenargumente zu Ende sind.

Das erste Argument, das mit einem -, einer Klammer (, ), einem Komma , oder einem Ausrufezeichen ! beginnt, wird als Anfang einer Option oder Test interpretiert. Alle Argumente davor werden als Verzeichnisnamen interpretiert. Wenn kein Verzeichnis angegeben ist, wird das aktuelle Verzeichnis genommen. Wenn keine Aktion angegeben ist, wird die Aktion -print ausgeführt.

Der Rückgabewert von find ist Null, wenn alle Aktionen erfolgreich waren, im Fehlerfall ist er größer als Null.

Optionen:

Die Optionen bestimmen das allgemeine Verhalten des Kommandos, und beziehen sich nicht auf spezielle Dateien. Die Optionen sind immer wahr.

-daystart
mißt die Zeiten für die -amin, -atime, -cmin, -ctime, -mmin und -mtime Eigenschaften vom Beginn des aktuellen Tages anstelle der letzten 24 Stunden -depth bearbeitet den Inhalt jedes Verzeichnisses vor dem Verzeichnis selbst
-follow
folgt den symbolischen Links; diese Option schließt -noleaf mit ein
-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 Kommando Zeiledozeile übergebenen Dateien und Verzeichnisnamen angewendet
-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
-noleaf
erzwingt die Bearbeitung aller Verzeichniseinträge; normalerweise kann davon ausgegangen werden, daß jedes Linux Verzeichnis wenigstens zwei (harte) Links enthält: das Verzeichnis . ist ein Link auf das Verzeichnis selbst, und jedes Unterverzeichnis enthält den Eintrag .. als Link auf das Oberverzeichnis; wenn find bei der Untersuchung eines Verzeichnisses zwei Unterverzeichnisse weniger untersucht hat, als das Verzeichnis Links zählt, kann deshalb normalerweise die weitere Suche beendet werden
-version
gibt die Versionsnummer auf die Standardfehlerausgabe
-xdev
durchsucht keine Verzeichnisse in anderen Dateisystemem
(auf anderen Partitionen)

Tests:

Alle numerischen Argumente können auf drei Arten angegeben werden:

  •    +N   steht für alle Zahlen größer als N
  •    -N steht für alle Zahlen kleiner als N
  •     N steht für genau N


-amin N

         Alle Tests werden auf die Dateien in den angegebenen Verzeichnissen einzeln angewendet. Die Tests liefern einen Wahrheitswert von 0 (Wahr), wenn der Test erfolgreich war. auf die Datei ist vor N Minuten zugegriffen worden

-anewer
          Referenzdatei auf die Datei ist vor weniger Zeit zugegriffen worden, als seit der letzten Veränderung der Referenzdatei vergangen ist; im Zusammenhang mit -follow tritt -anewer nur in Effekt, wenn -follow vor -anewer in der                      Kommandozeile steht
-atime N
auf die Datei ist vor N*24 Stunden zugegriffen worden
-cmin N
der Status der Datei wurde vor N Minuten geändert
-cnewer
           Referenzdatei der Status der Datei wurde vor weniger Zeit verändert, als seit der letzten Veränderung der Referenzdatei vergangen ist; zusammen mit -follow tritt -cnewer nur in Effekt, wenn -follow vor
-cnewer in der Kommandozeile steht
-ctime N
der Dateistatus wurde vor N*24 Stunden geändert
-empty
die reguläre Datei oder das Verzeichnis ist leer
-false
ist immer falsch
-gid N
die Datei gehört der Gruppe mit der GID N
-group Name
die Datei gehört der Gruppe Name
-inum N
die Datei belegt die Inode mit der Nummer N
-links N
die Datei hat N (harte) Links
-lname Muster
die Datei ist ein symbolischer Link auf eine Datei
oder ein Verzeichnis mit einem zum Muster passenden
Namen
-mmin N
der Inhalt der Datei wurde vor N Minuten verändert
-mtime N
der Inhalt der Datei wurde vor N*24 Stunden
verändert
-name Muster
der Name der Datei paßt zu dem Muster
-newer Referenzdatei
die Datei ist später verändert worden als die Referenzdatei;
zusammen mit -follow tritt -newer nur
in Effekt, wenn -follow vor -newer in der
Kommandozeile steht
-nouser
die Datei gehört keinem im System eingetragenen
Benutzer
-nogroup
die Datei gehört keiner im System angemeldeten
Gruppe
-path
           Muster der Pfadname der Datei passt zum Muster
-perm
          Modus die Zugriffsrechte auf die Datei entsprechen exakt dem Modus; der Modus kann als Oktalzahl oder mit den bei chmod beschriebenen Kennungen beschrieben werden, die Kennungen werden auf Modus 000 bezogen
-permModus
(mindestens) die Zugriffsrechte für den Modus sind
gesetzt
-perm +Modus
die Zugriffsrechte entsprechen höchstens dem Modus
(oder sind weiter eingeschränkt)
-size N[ck]
die Datei belegt N Datenblöcke zu 512 Bytes, bzw. N
Bytes und N Kilobytes mit nachgestelltem c oder k
-true
ist immer wahr
-type C

die Datei ist vom Typ C; folgende Typen werden
unterschieden:

Type Beschreibung
b gepufferte Gerätedatei für ein blockorientiertes Gerät
c ungepufferte Gerätedatei für ein zeichenorientiertes Gerät
d Verzeichnis
p Named Pipe
f normale Datei
l (L) Symbolischer Link
s Socket
-uid N
die UserID des Eigentümers ist N
-used N
auf die Datei ist N Tage nach der letzten Änderung
zugegriffen worden
-user Name
die Datei gehört dem Anwender Name
-xtype C
das gleiche wie -type für alle Dateien, die keine
symbolischen Links sind; wenn die Datei ein symbolischer
Link ist und die Option -follow nicht
gesetzt ist, wird die Datei, auf die der Link
zeigt, auf den Typ C geprüft; wenn die Option
-follow gesetzt ist, ist der Test wahr, wenn C = l ist

 

Aktionen:

-exec Kommando;
führt das Kommando aus; die Aktion ist wahr, wenn
das Kommando einen Status von Null liefert; alle
auf den Kommandonamen folgenden Argumente bis zu
einem Semikolon ; werden als Kommandozeilenargumente
für das Kommando interpretiert; das Semikolon
kann nicht weggelassen werden, und es muss durch
mindestens ein Whitespace von der Letzen Option
getrennt werden; die Konstruktion {} wird durch den
Pfadnamen der Datei ersetzt; die Klammern und das
Semikolon müssen in der Kommandozeile für find
quotiert werden, damit sie nicht von der Shell
bearbeitet werden
-fprint Ausgabedatei
schreibt den Pfadnamen der getesteten Datei in die
Ausgabedatei; wenn die Ausgabedatei nicht
existiert, wird sie erzeugt, sonst wird sie erweitert;
die Standardausgabe und die Standardfehlerausgabe werden als
/dev/stdout und /dev/stderr angesprochen
-fprintf Ausgabedatei Format
schreibt den Namen der getesteten Datei in die Ausgabedatei und
benutzt dabei das Format mit Sonderzeichen wie bei printf
-ok Kommando;
wie -exec, vor der Ausführung des Kommandos wird
aber noch eine Bestätigung erwartet; nur eine
Eingabe, die mit einem Y oder einem y beginnt,
führt zur Ausführung des Kommandos
-print
gibt den vollständigen Pfadnamen der getesteten
Datei auf die Standardausgabe
-printf Format

gibt für die getestete Datei die Zeichenkette Format auf der
Standardausgabe aus; Format kann verschiedene Sonderzeichen und Platzhalter
enthalten, die von find bearbeitet werden:

Sonderzeichen Beschreibung
\a Alamton
\b Rückschritt
\c Abbruch der Ausgabe
\f Seitenvorschub
\n Zeilenvorschub
\r Wagenrücklauf
\t horizontaler Tabulator
\v vertikaler Tabulator
\\ der Backslash selbst

ein Backslash gefolgt von irgendeinem anderen Zeichen wird
als normales Zeichen interpretiert und einfach ausgegeben

Sonderzeichen Beschreibung
%% das Przentzeichen selbst
%a die Zeit des letzten Zugriffs auf die Datei, in dem Format der ctime Funktion
%AK die Zeit des letzten Zugriffs auf die Datei, in dem von k bestimmte Format; k hat dabei das gleiche Format wie der entprechende Parameter der strftime Funktion in C
%b die Dateigröße in 512 Byte Blöcken (aufgerundet)
%c Das Datum der letzten Statusänderung im Format der C ctime Funktion
\CK das Datum der letzten Statusänderung imFormat der strftime Funktion; Parameter wie open
%d die Höhe der Datei im Verzeichnissbaum; Null bedeutet, dass die Datei Kommandozeilenargumente ist
%f der Name der getesteten Datei, ohne Verzeichnisse
%g der Gruppennamen der getesteten Datei oder die GroupID, wenn die Gruppe nicht eingetragen ist.
%G die GroupID
%h die Verzeichnisnamen des Pfadnamen der getesteten Datei
%H das Kommandozeilenargument (Test), mit dem die Datei gefunden wurde
%i die Nummer der Inode der getesteten Datei
%k die aufgerundete Größe der getesteten Datei in Kilobytes
%l das Opjekt, auf die ein symbolischer Link zeigt; leer, wenn die getestete Datei kein symbolischer Link ist.
%m die Zugriffsrechte als Oktalzahl
%p der Pfadname der Datei
%P der Pfadname und das Kommandozeilenargument (Test), mit dem die Datei gefunden wurde.
%s die Größe der getesteten Datei in Bytes
%t die Zeit der letzten Änderung, in ctime Format
%TK die Zeit der letzten Änderung, im strftime Format (siehe oben)
%u der Name des Eigentümers der getesteten Datei oder die UserID, wenn der Benutzer nicht eingetragen ist
%U Die UserID des Eigentümers der getesteten Datei.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Danke für die mail

Ich werden mich schnellst möglich bei Ihnen melden