Mit dem Befehl find können Sie an einem bestimmten Ort nach Dateien und Verzeichnissen suchen, die bestimmten Suchkriterien entsprechen. Es durchsucht rekursiv die Verzeichnisstruktur, einschließlich aller Unterverzeichnisse und deren Inhalte, beginnend mit dem von Ihnen eingegebenen Suchort. Sie können eine oder mehrere Aktionen für die gefundenen Dateien ausführen.
Mit der Option -type können Sie den gesuchten Objekttyp angeben, z. B. d für Verzeichnis oder f für Datei. Mit der Option -name geben Sie den Namen des Objekts an, nach dem Sie suchen. Das folgende Beispiel durchsucht das Home-Verzeichnis eines Benutzers (und alle Unterverzeichnisse) nach allen Dateien mit dem Namen 2021_report:
$ find /home/user -type f -name 2021_report
Syntax
Die Syntax des Suchbefehls lautet:
$ find [options] {search locations} {search criteria} [actions]
Finde VS. Befehle suchen
Der Befehl locate durchsucht eine Datenbank und ruft Informationen zu auf Ihrem System vorhandenen Dateien ab. Wird diese Datenbank jedoch nicht aktualisiert, kann dies zu veralteten Ergebnissen führen. Der Find-Befehl hingegen führt eine Live-Suche des Dateisystems durch und kann sich auf eine bestimmte Stelle konzentrieren. Der Find-Befehl kann länger dauern, um eine Suche abzuschließen, als der Locate-Befehl.
Optionen für gefundene Dateien
Wenn das System einen Eintrag findet, der Ihren Kriterien entspricht, können Sie verschiedene Aktionen für die Ergebnisse ausführen. Einige dieser Optionen sind in der folgenden Tabelle aufgeführt.
Option | Früher |
---|---|
Zeigt den Speicherort der gefundenen Dateien an. | |
-exec | Führt den folgenden Befehl aus. |
-ok | Führt den folgenden Befehl interaktiv aus. |
-löschen | Löscht gefundene Dateien. |
-fprint | Speichert Ergebnisse in der Zieldatei. |
Befehlsbeispiele finden
1. So finden Sie die Datei mit dem Namen im angegebenen Verzeichnis:
# find / -name file.txt # find . -name file.txt (within current directory)
2. So finden Sie die Datei mit den angegebenen Berechtigungen:
# find / -perm 775 # find / -perm a+x # find . -perm 775(within current directory)
3. Um mindestens ein Schreibbit gesetzt zu haben (spezifische Erlaubnis):
# find / -perm /a+w # find . -perm /a+w (within current directory)
4. Um eine Datei zu finden, die kein ausführbares Bit gesetzt hat:
# find / ! -perm /111 # find / ! -perm /a+x # find . ! -perm /a+x (within current directory)
5. Um nach einer weltweit lesbaren Datei zu suchen, die mindestens ein Schreibbit hat und von niemandem ausführbar ist:
# find . -perm -a+r -perm /a+w ! -perm /a+x
6. Um zu vermeiden, den symbolischen Links zu folgen:
# find -p / -name file
7. Um den symbolischen Links zu folgen:
# find -p / -name file
8. Symbolischen Links nicht zu folgen, außer während der Verarbeitung der Kommandozeilenargumente:
# find -H / -name file
9. So finden Sie die Datei mit der angegebenen Tiefe in der Verzeichnisstruktur:
# find -d 2 / -name file
10. So geben Sie die Abstiegsstufe an:
# find -maxdepth 2 / -name file
11. So legen Sie die Mindesttiefe fest:
# find -mindepth 4 / -name file
12. Um den Inhalt jedes Verzeichnisses vor dem Verzeichnis selbst zu verarbeiten:
# find -depth / -name file
13. So geben Sie den Starttag für Zeitstempel der Datei an:
# find -daystart -atime file
14. Um anzuzeigen, dass keine Fehlermeldung ausgegeben wird (wenn die Datei während der Verarbeitung gelöscht wird):
# find -ignore_readdir_race / -name file
15. So deaktivieren Sie das -ignore_readdir_race:
# find -noignore_readdir_race / -name file
16. Um keine Verzeichnisse von anderen Einhängepunkten aufzunehmen:
# find -mount / -name file
17. Zu Änderungen der regulären Ausdruckssyntax verstanden:
# find -regextype type
18. Warnmeldungen ein- oder ausschalten:
# find -warn / -name file # find -nowarn / -name file
19. Verzeichnisse auf Autofs-Dateisystemen nicht absteigen:
# find -xautofs / -name file
20. Keine Verzeichnisse auf anderen Dateisystemen absteigen:
# find -xdev / -name