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
find
an wo Sie mit der Suche nach Ihrem Suchbegriff beginnen können. - Ausdruck – Sagt
find
nach 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
find
Befehl. 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 Siegrep
ausführen Befehl, den Inhalt aller Dateien nach dem Wort Inhalt zu durchsuchen . - Der
{}
Klammern geben die Übereinstimmungsergebnisse derfind
an Befehl, und sie stehen in einfachen Anführungszeichen, sodassgrep
Befehl interpretiert sie nicht falsch. - Wir schließen das
grep
Befehl mit einem Semikolon (;
) und wir verwenden einen umgekehrten Schrägstrich (\
), damit das System das Semikolon nicht als Anweisung missversteht. - Schließlich der
–print
Option 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.
–P
Diese Option stellt das Standardverhalten dar. Symbolischen Links folgt das System nicht.-H
Das System folgt keinen symbolischen Links, außer während der Verarbeitung dieses speziellen Befehls.-L
Folgt 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.