Ein typisches Problem bei der Arbeit mit Computern ist, dass Sie die Dateien, die Sie irgendwo gespeichert haben, nicht finden können. Viele GUI-Programme ermöglichen es Ihnen, unabhängig von der Distribution nach Dateien zu suchen, während Sie unter Linux arbeiten. In einigen Situationen haben Sie jedoch nur Zugriff auf das Befehlszeilenterminal, insbesondere wenn Sie Server verwalten oder SSH für den Zugriff auf das System verwenden. Wenn Sie Ihre Dateien nicht finden können, müssen Sie Befehlszeilenprogramme unter Linux verwenden, um danach zu suchen.
Dieses Tutorial zeigt Ihnen, wie Sie das Terminal, das Befehlszeilenprogramm in Ubuntu OS, verwenden, um Dateien zu finden. Auf der Shell gibt es drei bekannte Möglichkeiten, nach Dateien zu suchen:
- Suchen Sie Dateien mit Suchen Befehl
- Mit Lokalisieren Befehl zum Suchen von Dateien
- Mit Grep Befehl zum Suchen in Dateien
Die Befehle Find und Locate werden verwendet, um nach Dateien im System zu suchen, während grep verwendet wird, um Dateien basierend auf dem darin enthaltenen Text zu durchsuchen. Find ist eine langsamere Methode, enthält aber mehrere Suchbedingungen, während Locate nicht so viele Bedingungen enthält, aber viel schneller ist als Find.
Lassen Sie uns mit dem Verfahren beginnen. Wir werden Ubuntu 20.04 LTS verwenden für die Beschreibung des in diesem Artikel erwähnten Verfahrens.
Methode 1:Verwenden des Suchbefehls
Find ist ein sehr flexibler Befehl, der verwendet wird, um Dateien basierend auf einer Vielzahl von Bedingungen zu suchen. Es ist ein sehr hilfreiches Werkzeug, wenn Sie eine Datei suchen, für die Sie sich nicht an den Namen der Datei erinnern. Mit dem Befehl Suchen können Sie nach Datei- und Ordnernamen, Erstellungsdatum, Änderungsdatum und Berechtigungen suchen. Sie können diese mehreren Bedingungen in einem Suchbefehl kombinieren. Es ist ein sehr leistungsfähiges, aber langsameres Suchwerkzeug.
Die allgemeine Syntax des Befehls lautet:
$ find /path/to/file/ -iname filename
Dateien in einem bestimmten Verzeichnis suchen
Sie können den Befehl Suchen verwenden, um nach allen Dateien in einem bestimmten Verzeichnis zu suchen. Die allgemeine Syntax wäre:
$ find /path/to/file/
Zum Beispiel, um alle Dateien unter /home/tin/Downloads/ zu finden starten Sie das Terminal durch Drücken von Strg+Alt+T und führen Sie dann den folgenden Befehl im Terminal aus:
$ find /home/tin/Downloads/
Dateien im aktuellen Verzeichnis suchen
Um nach Dateien in einem aktuellen Verzeichnis zu suchen, verwenden Sie
$ find .
Um im aktuellen Verzeichnis nach einer Datei mit dem Namen z. B. „Software“ zu suchen, verwenden Sie den folgenden Befehl im Terminal:
$ find . -iname Softwares
Suche mit einem Platzhalter
Sie können auch die Platzhalterzeichen verwenden, um die Dateien zu finden, die der Abfrage entsprechen. Die allgemeine Syntax wäre:
$ find /path/to/file/ -iname filename*
Um beispielsweise Dateien zu suchen, die mit dem Wort „Cent“ beginnen, führen Sie den folgenden Befehl im Terminal aus:
$ find /home/tin/ -iname cent*
Nach leeren Dateien suchen
Sie können auch mit dem Befehl Suchen nach leeren Dateien suchen. Die allgemeine Syntax wäre:
$ find /path/to/file/ -iname -empty
Zum Beispiel um leere Dateien unter /home/tin zu finden Führen Sie im Terminal-Verzeichnis den folgenden Befehl aus:
$ find /home/tin/ -empty
Suche basierend auf Datum und Uhrzeit
Mit dem Befehl Suchen können Sie auch nach Dateien suchen, je nachdem, wann auf sie zugegriffen oder sie geändert wurden. Es gibt verschiedene Zeittypen, die Sie zum Durchsuchen von Dateien verwenden können:
- mtime (Änderungszeit) :wann der Inhalt der Datei das letzte Mal geändert wurde.
- atime (Zugriffszeit) :wann zuletzt auf die Datei zugegriffen wurde.
- ctime (Zeit ändern) :wann die Dateiattribute zuletzt geändert wurden.
Um beispielsweise nach Dateien in einem aktuellen Verzeichnis zu suchen, die vor weniger als 2 Tagen geändert wurden, führen Sie den folgenden Befehl im Terminal aus:
$ find . -mtime -2
Um nach Dateien zu suchen, auf die vor weniger als 2 Tagen zugegriffen wurde, führen Sie den folgenden Befehl im Terminal aus:
$ find . –atime -2
Um nach Dateien zu suchen, die vor weniger als 2 Tagen geändert wurden, führen Sie den folgenden Befehl im Terminal aus:
$ find . –ctime -2
Suche nach Dateigröße
Um beispielsweise eine Datei zu suchen, deren Größe größer als 5 MB ist, können wir den folgenden Befehl im Terminal verwenden:
$ find . –size +5M\
Suche basierend auf Dateiberechtigungen
Es wird verwendet, um Dateien mit bestimmten Berechtigungen zu finden. Die allgemeine Syntax wäre:
$ find /path/to/file/ -type -perm mode
Wo:
Typ Parameter enthält d oder f Wert, der zum Angeben des Dateityps verwendet wird. d für Verzeichnisse und f nur für Dateien.
Modus kann entweder mit numerischer Berechtigung (z. B. 777, 655 usw.) oder symbolischer Berechtigung (z. B. u=x, a=r+x) erfolgen.
Um beispielsweise nach einer Datei mit der Berechtigung 644 zu suchen, können wir den folgenden Befehl im Terminal verwenden:
$ find . –type f –perm 644
Methode 2:Verwenden des Befehls „Lokalisieren“
Es gibt einen weiteren Befehl Locate, mit dem Sie Dateien in Linux durchsuchen können. Es hat nicht so viele Suchbedingungen wie das Suchdienstprogramm, aber es ist viel besser und schneller als das Suchdienstprogramm. Der Grund dafür ist der Hintergrundprozess, der tatsächlich in Ihrem System läuft und neue Dateien in seiner eigenen Datenbank sucht und speichert. Im Gegensatz zum Find-Befehl durchsucht es nicht Ihre lokale Festplatte nach Dateien und Verzeichnissen, sondern sucht sie stattdessen in seiner eigenen Datenbank. Seine Datenbank sollte regelmäßig aktualisiert werden, damit das Suchdienstprogramm funktioniert.
Locate installieren
Locate wird nicht standardmäßig im Linux-Betriebssystem installiert. Sie müssen es manuell installieren. Drücken Sie Strg+Alt+T , um das Terminal zu starten, und geben Sie dann den folgenden Befehl als sudo ein, um das Locate-Dienstprogramm zu installieren:
$ sudo apt-get install locate
Sobald die Installation abgeschlossen ist, können Sie sofort das Locate-Dienstprogramm verwenden.
Die allgemeine Syntax des Befehls lautet:
$ locate –i filename
Wobei -i verwendet wird, um Groß- und Kleinschreibung zu ignorieren.
Nach einer Datei suchen
Um beispielsweise nach einem Dateinamen „centos“ zu suchen, verwenden Sie den folgenden Befehl im Terminal:
$ locate –i centos
Es wird nach allen Dateien gesucht, deren Dateinamen die Zeichenfolge „centos“ enthalten.
Nach mehreren Dateien suchen
Sie können auch nach mehreren Dateinamen gleichzeitig suchen. Verwenden Sie beispielsweise den folgenden Befehl im Terminal, um nach zwei Dateien „sdn.txt“ zu suchen und „centos“ :
$ locate –i sdn.txt centos
Suche mit Wildcard
Sie können auch das Platzhalterzeichen verwenden, um die Dateien zu finden, die der Abfrage entsprechen. Um beispielsweise nach allen Dateien zu suchen, die auf „.iso“ enden, verwenden Sie den folgenden Befehl im Terminal:
$ locate –i *.iso
Ortungsdatenbank aktualisieren
Der Locate-Befehl ist auf seine Datenbank angewiesen, um zu funktionieren, daher muss er regelmäßig aktualisiert werden. Führen Sie den folgenden Befehl im Terminal aus, um die Datenbank des Locate-Dienstprogramms zu aktualisieren:
$ sudo updatedb
Methode 3:Verwenden des Grep-Befehls
Obwohl Grep nicht zum direkten Durchsuchen von Dateien in Ihrem System dient, wird es stattdessen zum Durchsuchen von Text verwendet. Sie können es jedoch verwenden, um die Namen von Dateien anzuzeigen, die die bestimmte Zeichenfolge enthalten, die Ihrer Suchanfrage entspricht. Um nach einer Zeichenfolge zu suchen, müssen Sie sie in doppelte Anführungszeichen setzen.
Die allgemeine Syntax des Befehls lautet:
$ grep [Optionen] [Muster] [/Pfad/zu/Datei]
wobei [Optionen] Der Parameter enthält generische Optionen zur Steuerung der Suche und [Muster] enthält Zeichenfolge, die wir suchen möchten.
Wenn Sie nach einer Datei suchen, die ein Wort enthält, von dem Sie vermuten, dass es sich in einem bestimmten Verzeichnis befindet, können Sie mit der obigen Befehlssyntax in Terminal danach suchen.
Zum Beispiel, um nach einer Datei zu suchen, die das Wort „Tim und Struppi“ enthält und wir denken, dass diese Datei in unseren Downloads sein könnte Ordner, können wir den folgenden Befehl verwenden, um diese Datei zu finden.
$ grep -r –i “tintin” /home/tin/Downloads
Wo
-i wird verwendet, um Fallunterscheidungen zu ignorieren
–r wird verwendet, um rekursiv nach dem angegebenen Verzeichnis zu suchen
Nach mehreren Wörtern suchen
Sie können auch nach mehreren Zeichenfolgen gleichzeitig suchen. Sie müssen den Backslash „\“ und das Pipe-Zeichen „|“ verwenden. Zeichen zwischen Ihren Zeichenfolgen.
Um beispielsweise nach zwei Zeichenfolgen „tintin“ und „ping“ zu suchen, können wir den folgenden Befehl im Terminal verwenden:
$ grep –r –I “tintin\|ping” /home/tin/Downloads
Das war also der kurze Überblick, wie Sie in Ubuntu über die Befehlszeile nach Dateien suchen können. In diesem Artikel haben wir drei nützliche Befehlszeilenmethoden zum Suchen nach Dateien gesehen. Sie können je nach Suchgeschwindigkeit und -bedingungen eine dieser Methoden auswählen.