Einführung
Der find Mit dem Befehl können Sie über Ihre Linux-Befehlszeilenschnittstelle nach einer bestimmten Zeichenkette suchen. Es ist ein sehr praktisches Werkzeug, da es nicht auf Dateinamen beschränkt ist. Sie können es verwenden, um einen bestimmten Ort zu durchsuchen, Optionen hinzufügen, um das Verhalten der Suche zu steuern, und zusätzliche Befehle verwenden, um ihm mitzuteilen, wie es die gefundenen Daten verwalten soll.
Dieses Tutorial zeigt Ihnen, wie Sie Dateien in Linux mit find finden und verwalten Befehl.
Voraussetzungen
- Zugriff auf ein Terminalfenster/eine Befehlszeile
- Ein Benutzerkonto mit sudo Privilegien
Grundlegende Suchbefehlssyntax
Die grundlegende Syntax des find Befehl verwendet das folgende Format:
find <options> <location> <expression> <action> <name> - Standort – Weist
findan wo Sie mit der Suche nach Ihrem Suchbegriff beginnen können. - Ausdruck – Sagt
findnach welcher Kategorie von Informationen gesucht werden soll. - Aktion – Die Aktion -Attribut führt einen Befehl für die Suchergebnisse aus. Es ist ein optionales Element.
- Name – Stellt die Textzeichenfolge (oder andere Daten) dar, nach der Sie suchen.
- Optionen – Dieses Attribut ist kein obligatorisches Element von
findBefehl. Es kann verwendet werden, um das Verhalten zu steuern und den Suchprozess zu optimieren.
Verwendung des Find-Befehls
Der find Der Befehl listet alle Instanzen der Zeichenfolge auf, die Sie in Ihre Suche eingeschlossen haben. Der find Mit dem Befehl können Sie auch Suchparameter, Optionen und Standorte mit hoher Genauigkeit definieren.
Dateien nach Speicherort suchen
Die Suche nach Dateien basierend auf ihrer Positionszeichenfolge kann ein einfacher Befehl sein, wie zum Beispiel:
sudo find /home/user filename Dieser Befehl durchsucht den Benutzer Konto auf der Startseite Verzeichnis. Wenn Sie sich nicht sicher sind, wo Sie suchen möchten, können Sie den Suchbereich erweitern.
Wenn Sie beispielsweise zwei Benutzerkonten haben und sich nicht erinnern, in welchem Sie eine Datei gespeichert haben, können Sie Folgendes eingeben:
sudo find /home filename
Der find Durchsucht alles unter /home Verzeichnis (einschließlich aller Benutzerverzeichnisse) für Ihren Suchbegriff. In unserem Beispiel lautet der Suchbegriff Dateiname .
Verwenden Sie einen Punkt . So durchsuchen Sie das Verzeichnis, in dem Sie sich gerade befinden:
sudo find .
Geben Sie einen Schrägstrich / ein , und Ihr System wird die gesamte Festplatte durchsuchen:
sudo find /
Das Tilde-Zeichen ~ wird verwendet, um das Home-Verzeichnis des aktuellen Benutzers zu durchsuchen:
sudo find ~ Ausdrücke mit dem Find-Befehl verwenden
Ausdrücke wenden zusätzliche Parameter auf find an Befehl Suchvorgang. Der gebräuchlichste Ausdruck ist -name . Dieser Ausdruck durchsucht den von Ihnen angegebenen Speicherort nach einer Datei mit dem Namen, den Sie in name eingeben Feld.
sudo find –name settings.txt Das System durchsucht das aktuelle Verzeichnis nach einer Datei mit dem Namen settings.txt.
Das System zeigt nur Dateinamen an, die genau mit Ihren Suchbegriffen übereinstimmen. Diese Einschränkung kann beispielsweise Probleme verursachen, wenn ein Dateiname Großbuchstaben enthält.
Um find zu sagen Um Groß-/Kleinschreibung zu ignorieren, verwenden Sie –iname Ausdruck, wie folgt:
sudo find /home –iname filename Das System durchsucht /home Verzeichnis und geben Sie alles mit dem Namen Dateiname zurück , Dateiname , und sogar fIlenamE .
Verwenden Sie den –type d Ausdruck, um anzugeben, ob Sie nach einer Datei oder einem Verzeichnis suchen:
sudo find . –type d –name Videos Dieser Befehl durchsucht das aktuelle Verzeichnis (mit dem Punkt) nach einem Verzeichnis mit dem Namen „Videos .“
Standardmäßig find sucht nach Dateien, aber Sie können Dateien angeben, indem Sie -type f verwenden .
Alle Dateien anzeigen, die den gesuchten Namen nicht enthalten:
sudo find . -not filename Suchen Sie nach Dateien mit einer bestimmten Berechtigungsstufe:
sudo find . -perm 0000 Gibt eine Liste aller Dateien zurück, die einem bestimmten Benutzernamen gehören:
sudo find . -user username Die letzten 00 geänderten Dateien anzeigen:
sudo find . -mtime 00 Der Zahlenwert definiert die Anzahl der Dateien, die das System anzeigt. Zeigt die letzten 00 Dateien, auf die zugegriffen wurde:
sudo find . -atime 00 Alle Dateien anzeigen, die größer als 20 Megabyte sind:
sudo find . -size +20M Das Terminal zeigt eine Liste aller Dateien an, die den Größenkriterien entsprechen.
Befehle, die sich auf die Größe der gesuchten Elemente beziehen, können individuell verwendet werden, um alle Dateien anzuzeigen, die größer als eine bestimmte Größe, kleiner als eine bestimmte Größe oder innerhalb eines definierten Bereichs sind.
Name oder Erweiterung suchen
Der name Das Attribut definiert das Objekt Ihrer Suche. Der find Das Tool geht für die von Ihnen eingegebene Zeichenfolge an die angegebene Stelle. Normalerweise steht der Name der gesuchten Datei am Ende des Befehls, nach dem Speicherort, den Optionen und den Ausdrücken.
Standardbuchstaben und Ziffern werden als Zeichenfolge am Ende des Befehls eingegeben. Sonderzeichen – ein Platzhalter, ein Punkt, ein Schrägstrich usw. – erfordern die Verwendung von einfachen Anführungszeichen um den Namen. Einfache Anführungszeichen stellen sicher, dass das System die Anfrage richtig interpretiert.
Geben Sie den folgenden Befehl ein, um nach Dateien mit einer bestimmten Erweiterung wie .html zu suchen oder .php :
sudo find . –type f –name ‘*.html’
Das System durchsucht das aktuelle Verzeichnis nach regulären Dateien (type –f ) die die Erweiterung .php haben . In diesem Fall ist das Sternchen (das * Zeichen) wird als Platzhalter verwendet , was bedeutet, dass es für eine beliebige Anzahl von Zeichen beliebigen Typs stehen kann.
Platzhalter sind nützlich, wenn Sie sich nur an einen Teil eines Dateinamens erinnern oder nach Dateien mit einer bestimmten Erweiterung suchen.
Aktionen mit dem Find-Befehl ausführen
Wir haben gesehen, wie man find verwendet Befehl, um Suchergebnisse in Ihrem Terminalfenster anzuzeigen. Eine Aktion -Attribut kann diese Funktionalität verbessern und eine bestimmte Aufgabe ausführen, sobald eine Datei gefunden wurde.
Der folgende Befehl durchsucht den tatsächlichen Inhalt von Dateien (anstatt nur die Dateinamen):
sudo find ~ –type f –exec grep “contents” ‘{}’ \; –print - Wir bitten das System, eine Datei zu finden (
-type f) im Home-Verzeichnis unseres Benutzers (~). - Wir weisen das System an, Maßnahmen zu ergreifen (
-exec), indem Siegrepausführen Befehl, den Inhalt aller Dateien nach dem Wort Inhalt zu durchsuchen . - Der
{}Klammern geben die Übereinstimmungsergebnisse derfindan Befehl, und sie stehen in einfachen Anführungszeichen, sodassgrepBefehl interpretiert sie nicht falsch. - Wir schließen das
grepBefehl mit einem Semikolon (;) und wir verwenden einen umgekehrten Schrägstrich (\), damit das System das Semikolon nicht als Anweisung missversteht. - Schließlich der
–printOption weist das System an, die Ergebnisse anzuzeigen.
Kopieren Sie diesen Befehl, fügen Sie ihn in Ihr Terminalfenster ein und ersetzen Sie ~ durch Ihren Suchpfad Zeichen und Ihren Suchbegriff für das Wort Inhalt.
Sie können find –exec verwenden Kombination zum schnellen Ändern von Dateiberechtigungen:
sudo find /path –name “filename.ext” –exec chmod 777 ‘{}’ \;
Dieser Befehl verwendet die –exec Befehl zum Ausführen von chmod um die Dateiberechtigungen der Datei Dateiname.ext zu ändern damit es von allen gelesen, geschrieben und ausgeführt werden kann.
Suchen und löschen Sie Dateien mit dem Befehl find
Mit –delete Befehl können Sie schnell eine oder mehrere Dateien mit einem Befehl finden und entfernen.
In diesem Beispiel find löscht alle Dateien, die auf die .html enden Erweiterung.
sudo find . –name “*.html” –delete Dieser Befehl durchsucht das aktuelle Verzeichnis (das in Ihrer Eingabeaufforderung angezeigt wird) nach allen Dateien mit der Datei .html Erweiterung und löschen Sie sie. Das Bild veranschaulicht die Einfachheit des Vorgangs.
Diese Art von Aktion ist nützlich, um alte Sicherungsdateien zu entfernen, wenn Sie „*.bak“ ersetzt haben statt “*.bmp”.
Optionen hinzufügen, um Befehl zu finden
Optionen sind spezielle Funktionen, die vor dem Suchpfad in einem find eingefügt werden Befehlszeichenfolge. Das -L , -H , und -P sind optionale Elemente, die verwendet werden, um die Behandlung symbolischer Links zu steuern.
–PDiese Option stellt das Standardverhalten dar. Symbolischen Links folgt das System nicht.-HDas System folgt keinen symbolischen Links, außer während der Verarbeitung dieses speziellen Befehls.-LFolgt symbolischen Links. Die Informationen stammen aus der Datei, auf die der Link verweist. Nicht für den Link selbst.
Optionen können die Suchoptimierungsstufe ändern. Es gibt drei (3) Optimierungsstufen, die definieren, wie das Suchprogramm Suchen organisiert und wie schnell diese Suche ausgeführt wird.
- –O1 Diese Optimierungsstufe wird standardmäßig verwendet. Suchen basierend auf den Dateinamen werden zuerst ausgeführt.
- –O2 Suchen nach Typ werden direkt nach Suchen nach Namen ausgeführt. Bevor andere Suchen stattfinden.
- –O3 Suchvorgänge werden durchgeführt, um die Geschwindigkeit zu maximieren. Unabhängig von anderen Abfrageelementen.