Linux find-Befehl
Der Linux find-Befehl wird verwendet, um Dateien und Verzeichnisse unter einem angegebenen Verzeichnis zu suchen.
Er kann verschiedene Optionen verwenden, um die Suchergebnisse zu filtern und einzuschränken.
Syntax
find [路径] [匹配条件] [动作]
Parameterbeschreibung :
PfadDies ist der Verzeichnispfad, der durchsucht werden soll. Er kann ein Verzeichnis- oder Dateiname oder mehrere durch Leerzeichen getrennte Pfade sein. Wenn kein Pfad angegeben wird, wird standardmäßig das aktuelle Verzeichnis verwendet.
AusdruckDies ist ein optionaler Parameter, der zur Angabe der Suchbedingung verwendet wird; er kann ein Dateiname, Dateityp, Dateigröße und so weiter sein.
In den Übereinstimmungsbedingungen sind bis zu zwanzig oder dreißig Optionen verfügbar. Die am häufigsten verwendeten sind unten aufgeführt:
-name pattern: Nach Dateinamen suchen; Platzhalter werden unterstützt.*und?。-type type: Suche nach Dateityp; es kann seinf(reguläre Dateien),d(Verzeichnisse),l(symbolische Links), usw.-size [+-]size[cwbkMG]: Suche nach Dateigröße; unterstützt die Verwendung von+oder-, um größer als oder kleiner als die angegebene Größe anzugeben; die Einheit kann seinc(Bytes),w(Wörter),b(Blockanzahl),k(KB),M(MB) oderG(GB).-mtime days: Suche nach Änderungszeit; sie unterstützt die Verwendung von+oder-um vor oder nach der angegebenen Anzahl von Tagen anzugeben; days ist eine ganze Zahl, die die Anzahl der Tage darstellt.-user username: Suche nach Dateieigentümer.-group groupname: Suche nach Dateigruppe.
Aktionen:Optional; dient zum Ausführen von Operationen an den übereinstimmenden Dateien, wie Löschen, Kopieren usw.
Die zeitbezogenen Parameter im find-Befehl lauten wie folgt:
-
-amin n: Dateien finden, auf die innerhalb von n Minuten zugegriffen wurde. -
-atime n: Dateien finden, auf die innerhalb von n*24 Stunden zugegriffen wurde. -
-cmin n: Dateien finden, deren Status sich innerhalb von n Minuten geändert hat (z. B. Berechtigungen). -
-ctime n: Dateien finden, deren Status sich innerhalb von n*24 Stunden geändert hat (z. B. Berechtigungen). -
-mmin n: Dateien finden, die innerhalb von n Minuten geändert wurden. -
-mtime n: Dateien finden, die innerhalb von n*24 Stunden geändert wurden.
Bei diesen Parametern kann n eine positive Zahl, eine negative Zahl oder null sein. Eine positive Zahl gibt Dateien an, die innerhalb des angegebenen Zeitraums geändert oder aufgerufen wurden, eine negative Zahl gibt Dateien an, die vor dem angegebenen Zeitpunkt geändert oder aufgerufen wurden, und null gibt Dateien an, die zum aktuellen Zeitpunkt geändert oder aufgerufen wurden.
Positive Zahlen sollten vor dem angegebenen Zeitpunkt liegen, und negative Zahlen innerhalb des angegebenen Zeitraums.
Zum Beispiel:-mtime 0Gibt an, dass nach heute geänderten Dateien gesucht wird,-mtime -7Gibt an, dass nach Dateien gesucht wird, die vor mehr als einer Woche geändert wurden.
Erklärung des Zeitparameters n:
+n: Dateien oder Verzeichnisse finden, die älter als n Tage sind.
-
-n: Dateien oder Verzeichnisse finden, deren Attribute innerhalb von n Tagen geändert wurden.
-
n: Dateien oder Verzeichnisse finden, deren Attribute vor n Tagen geändert wurden (an diesem angegebenen Tag).
Beispiele
Finde die Datei namens file.txt im aktuellen Verzeichnis:
find . -name file.txt
Alle Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen mit dem Suffix.cund die Dateien auflisten:
# find . -name "*.c"
Alle Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen auflisten:
# find . -type f
Finde Dateien, die größer als 1MB sind, im Verzeichnis /home:
find /home -size +1M
Finde Dateien im Verzeichnis /var/log, die vor 7 Tagen geändert wurden:
find /var/log -mtime +7
Dateien suchen, auf die in den letzten 7 Tagen zugegriffen wurde:
find /path/to/search -atime -7
Dateien und Verzeichnisse im aktuellen Verzeichnis suchen, deren Status sich in den letzten 20 Tagen geändert hat:
# find . -ctime 20
Alle Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen auflisten, die vor 20 Tagen oder früher aktualisiert wurden:
# find . -ctime +20
Reguläre Dateien im Verzeichnis /var/log suchen, deren Änderungszeit mehr als 7 Tage zurückliegt, und vor dem Löschen eine Bestätigung anfordern:
# find /var/log -type f -mtime +7 -ok rm {} \;
Dateien im aktuellen Verzeichnis suchen, bei denen der Dateieigentümer Lese- und Schreibrechte hat und Gruppenbenutzer sowie andere Benutzer Leserechte haben:
# find . -type f -perm 644 -exec ls -l {} \;
Alle regulären Dateien mit einer Dateilänge von 0 im System suchen und ihre vollständigen Pfade auflisten:
# find / -type f -size 0 -exec ls -l {} \;
Suchen und Operationen ausführen (z. B. löschen):
find /path/to/search -name "pattern" -exec rm {} \;
In diesem Beispiel ermöglicht die Option-execdie Ausführung eines Befehls,{}wird durch den passenden Dateinamen ersetzt,\;kennzeichnet das Ende des Befehls.
Andere Erweiterungen
Linux-Befehlsenzyklopädie