Grundsätzlich ist alles in Linux eine Datei. Aber bevor Sie eine Datei bearbeiten können, müssen Sie sie in Ihrem System finden können.
Über die Linux-Dateisuche
In diesem Artikel beschreibe ich kurz zwei Befehle im Detail mit nützlichen Beispielen, um mit dem Terminal nach Dateien zu suchen. Die beiden Befehle sind der Suchbefehl und der locate-Befehl . Der Unterschied zwischen den beiden Befehlen besteht darin, dass find eine Suche in Echtzeit durchführt und locate eine indizierte Datenbank für die Suche verwendet. Dies bedeutet, dass der Befehl locate normalerweise schneller ist, aber davon ausgeht, dass sich die gesuchte Datei in ihrer Indexdatenbank befindet und diese Datenbank normalerweise nachts erstellt wird, sodass neuere Dateien vom Befehl locate nicht gefunden werden. Ich verwende Debian 11 in meiner Umgebung. Aber die Befehle sollten auf anderen Linux-Distributionen gleich sein.
Wenn Sie Dateien anhand ihres Inhalts statt anhand des Dateinamens suchen möchten, sehen Sie sich stattdessen den grep-Befehl an.
Suchen nach Dateien und Verzeichnissen mit dem Find-Befehl
Datei im aktuellen Verzeichnis suchen
Wenn Sie eine Datei mit dem Befehl find suchen möchten, führen Sie einen der folgenden Schritte auf Ihrem Terminal aus.
find <filname>
Angenommen,
find test.txt
Dadurch wird die Datei im aktuellen Verzeichnis, in dem Sie gerade arbeiten, gesucht.
Datei in einem anderen Verzeichnis suchen
Nun, wenn Sie die Datei in einem bestimmten Verzeichnis suchen möchten. Der vollständige Befehl sollte wie folgt aussehen:
find <path of directory/filename>
Angenommen, Sie möchten eine Datei mit dem Namen „test.txt“ in „Dokumente“ durchsuchen, sollte der vollständige Befehl wie folgt lauten.
find Documents/test.txt
Dateien nach Dateierweiterung suchen
Wenn Sie nun alle Textdateien in Ihrem aktuellen oder bestimmten Verzeichnis finden möchten, sollten die entsprechenden Befehle wie folgt aussehen.
find *.txt
find <path of directory/*.txt>
Angenommen, Sie möchten alle Textdateien im Pfad von Documents/Karim durchsuchen, der vollständige Befehl sollte wie folgt aussehen.
find Documents/Karim/*.txt
Dateien nach Namen suchen
Alternativ können Sie den Schalter -name verwenden, wenn Sie eine Datei nach Namen suchen möchten.
find <path> -name <name of file you want to search>
Angenommen, Sie möchten eine Datei namens test1.txt unter Documents/Karim suchen. Der vollständige Befehl sollte wie folgt aussehen.
find Documents/Karim -name test1.txt
Wenn Sie eine bestimmte Datei im aktuellen Verzeichnis suchen möchten, an dem Sie gerade arbeiten. Stellen . unter dem im Beispiel gezeigten Pfad.
find . -name test1.txt
Groß-/Kleinschreibung bei der Suche nach Dateien ignorieren
Wenn Sie eine Datei suchen und die Groß-/Kleinschreibung ignorieren möchten, verwenden Sie den Schalter -iname. Der vollständige Befehl sollte wie folgt aussehen.
find . -iname test.txt
Dateien nach Dateityp suchen, z. Symlinks
Um nach einem bestimmten Dateityp zu suchen, verwenden Sie die Option -type. Der vollständige Befehl sollte wie folgt aussehen.
find <path> -type <c>ein
- c gibt den Dateityp an und sie folgen.
- b block (buffered) special
- c Zeichen (ungepuffert) spezial
- d Verzeichnis
- p benannte Pipe
- f normale Datei
- l Symbolischer Link
- D Tür (Solaris)
Angenommen, Sie möchten normale Dateien unter Documents/Karim durchsuchen, führen Sie den folgenden Befehl aus.
find Documents/Karim -type f
Wenn Sie in Ihrem aktuellen Verzeichnis nach regulären Dateien suchen möchten. Der vollständige Befehl sollte wie folgt aussehen.
find . -type f
Wenn Sie Dateien mit mehreren Erweiterungen suchen möchten, verwenden Sie die durch Kommas getrennten c-Zeichen.
Angenommen, Sie möchten alle regulären leeren Dateien in Ihrem aktuellen Verzeichnis finden.
find . -type f -empty
Angenommen, Sie möchten alle leeren Verzeichnisse in Ihrem aktuellen Verzeichnis finden, verwenden Sie die Optionen -d und -empty in einem Find-Befehl wie folgt.
find . -type d -empty
Dateien nach Größe suchen
Wenn Sie Dateien mit einer bestimmten Größe finden möchten, können Sie den Parameter -size verwenden. Sie können das folgende Suffix mit ihrer genauen Größe verwenden.
- c :Bytes
- k :Kilobyte
- M :Megabyte
- G :Gigabyte
- b :512-Byte-Block
Angenommen, Sie möchten alle Dateien in Ihrem aktuellen Verzeichnis finden, die genau 50 Byte groß sind. Sie müssen den folgenden Befehl ausführen.
find . -size 50c
Angenommen, Sie möchten alle Dateien in Ihrem aktuellen Verzeichnis finden, die größer als 50 Byte bzw. kleiner als 50 Byte sind, müssen Sie einen der folgenden Befehle ausführen.
find . -size +50c
find . -size -50c
Dateien nach Eigentümer (Benutzer) suchen
Wenn Sie nach einer Datei suchen möchten, die einem bestimmten Benutzer gehört, können Sie die Option -user verwenden. Die Syntax des Befehls sollte wie folgt lauten.
find <path> -user <username>
Angenommen, Sie möchten eine Datei in Ihrem aktuellen Verzeichnis suchen, die vitux gehört. Der Befehl sollte wie folgt aussehen.
find . -user vitux
Suchen von Dateien mit einem Suchbefehl
Zweitens gibt es den locate-Befehl, mit dem Sie Dateien und Verzeichnisse in Ihrem System durchsuchen können.
Zunächst müssen Sie das Suchdienstprogramm auf Ihrem Debian 11-Rechner installieren. Melden Sie sich mit root an und führen Sie den folgenden Befehl auf Ihrem Terminal aus. Drücken Sie Y auf Ihrer Tastatur, wenn Sie zur Bestätigung aufgefordert werden.
apt-get install locate
Warten Sie, bis ein Vorgang abgeschlossen ist.
Locate ist ein schnellerer Befehl und stützt sich auf die Datenbank des Dateisystems. Es wird einmal täglich aktualisiert, aber wenn Sie es manuell aktualisieren möchten, führen Sie den folgenden Befehl auf Ihrem Terminal mit Root-Rechten aus.
updatedb
Um eine Datei mit dem Befehl locate in Ihrem aktuellen Verzeichnis zu suchen, führen Sie Folgendes auf Ihrem Terminal aus.
locate <filename>
Angenommen, mein Dateiname ist test.txt. Der vollständige Befehl sollte wie folgt aussehen.
find test.txt
Sie können die Option -i verwenden, um die Groß-/Kleinschreibung des Dateinamens zu ignorieren.
locate -i <filename>
oder
locate -i test.txt
Sowohl die Befehle locate als auch find sind beim Durchsuchen der Dateien hilfreich. Es liegt an Ihnen, welchen der Befehle Sie hauptsächlich verwenden. Sie können mit anderen Befehlen erweitert werden, indem man pipe, wc, sort und grep usw. verwendet.