Wie kann ich den Befehl find effizienter verwenden?

15

Ich wollte wissen, wie ich den Befehl find am besten effizient einsetzen kann.

Ich benutze im Allgemeinen, find [filename] [dir]was mir eine lange Liste von Dateinamen gibt, keine davon in irgendeiner Weise im Zusammenhang mit meiner Suche.

Ich muss nur eine Datei in einem bestimmten Verzeichnis finden. Was ist der Befehl dafür?

Sam007
quelle

Antworten:

24

Normalerweise teilen Sie find mit, wo mit der Suche begonnen werden soll und wonach gesucht werden soll. Die Syntax für Suchpfade und das, was Sie tatsächlich suchen, ist also unterschiedlich.

Nehmen wir für den von Ihnen erwähnten Anwendungsfall an, Sie möchten die passwdDatei in folgender Sprache finden /etc:

find /etc/ -name passwd

Sie sagen , „in etc beginnen, für eine Datei , deren Name istpasswd

Wenn Sie in find keine Kriterien (oder "Optionen") angeben, beginnt find mit dem angegebenen Pfad (oder den angegebenen Pfaden) und sucht rekursiv nach allen Dateien und Verzeichnissen darunter. Die Optionen "filtern" diese Dateien, um das Gesuchte einzugrenzen.

Finden Sie alle JPG-Dateien in Ihrem Dateisystem:

find / -name "*jpg" 

Die Verwendung von Anführungszeichen in Ihren Optionen wird empfohlen, da andernfalls die Shell-Erweiterung Kopfschmerzen verursachen kann.

Finden Sie alle PDF-Dateien, egal in welchem ​​Fall, entweder in Dokumenten oder in Downloads:

find Documents/ Downloads/ -iname "*pdf"

Wenn Sie dies tun man findund zu TESTS scrollen, werden Sie alle "Kriterien" finden, die Sie zur Eingrenzung Ihrer Suche verwenden können. Sie können nach Dateien mit bestimmten Dateinamen suchen, die bestimmten Benutzern oder Gruppen gehören und über eine bestimmte Dateiberechtigung verfügen und von einem bestimmten Typ sind (z. B. -type dwerden nur Verzeichnisse gefunden, während -type fnur einfache Dateien ohne Verzeichnisse gefunden werden), Dateien, die neuer oder älter sind als Eine bestimmte Anzahl von Tagen (oder Minuten), leere Dateien, ausführbare Dateien usw.

In der Manpage von find finden Sie auch einen Abschnitt mit dem Namen ACTIONS. Diese können den Kriterien folgen und werden von jeder Datei ausgelöst, die allen Kriterien entspricht. Sie haben also finddie Möglichkeit, gefundene Dateien zu löschen, beliebige Befehle auszuführen und so weiter.

Aber natürlich bleibt die grundlegende Syntax:

find [starting path(s)] [conditions or criteria]
Roadmr
quelle
danke das klappt super. Ich war wirklich verwirrt und dies hilft, die Dinge
klar zu stellen
1
+1 Dies ist eine nette Einführung zum Auffinden und zeigt dem OP, wie man weitere Informationen findet.
Igarzo