GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So finden Sie Dateien in Linux mit dem Find-Befehl

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
  1. Wir bitten das System, eine Datei zu finden (-type f ) im Home-Verzeichnis unseres Benutzers (~ ).
  2. Wir weisen das System an, Maßnahmen zu ergreifen (-exec ), indem Sie grep ausführen Befehl, den Inhalt aller Dateien nach dem Wort Inhalt zu durchsuchen .
  3. Der {} Klammern geben die Übereinstimmungsergebnisse der find an Befehl, und sie stehen in einfachen Anführungszeichen, sodass grep Befehl interpretiert sie nicht falsch.
  4. 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.
  5. 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.

Linux
  1. Finden Sie Dateien und Verzeichnisse unter Linux mit dem Befehl find

  2. So prüfen Sie Berechtigungen mit dem Befehl find

  3. Verwenden des Linux-Suchbefehls – Verwendung mit Beispielen

  4. Wie finde ich doppelte Dateien in Linux? Hilfe ist hier mit dem fdupes-Befehl!

  5. So verwenden Sie den Linux-Befehl find zum Suchen von Dateien

So finden Sie Dateien mit dem fd-Befehl in Linux

So laden Sie Dateien mit dem Curl-Befehl unter Linux herunter

So laden Sie Dateien mit dem Wget-Befehl unter Linux herunter

Tutorial für Linux-Suchbefehle (mit Beispielen)

So finden Sie Ordner in Linux

So finden Sie Dateien mit Dutzenden von Kriterien mit dem Bash-Suchbefehl