Unter Linux nach Dateien suchen, die bestimmten Text enthalten
Linux wird unabhängig von der verwendeten Distribution mit einer Reihe von GUI-Tools geliefert, die die Suche nach Dateien ermöglichen. Viele moderne Dateimanager unterstützen die Dateisuche direkt in der Dateiliste. Es gibt jedoch eine Reihe von Situationen, in denen Sie die Konsole verwenden müssen, beispielsweise während einer SSH-Sitzung oder wenn der X-Server nicht startet. So können Sie mit dem Terminal schnell Dateien finden, die bestimmten Text enthalten.
Werbung
Wenn Sie die GUI verwenden können, ist die Suche nach Dateien kein Problem. In meiner bevorzugten XFCE-Desktopumgebung ermöglicht der Thunar-Dateimanager die Suche nach Dateien, indem der Dateiname direkt in die Dateiliste eingegeben wird.
Keiner der Dateimanager, die ich ausprobiert habe, ermöglicht jedoch die Suche nach Dateiinhalten.
Um diese Einschränkung beim Arbeiten in einer GUI-Sitzung zu umgehen, können Sie Сatfish verwenden. Сatfish ist ein beliebtes Suchwerkzeug. Es ermöglicht die Suche nach Dateiinhalten. Sie müssen auf das Zahnradsymbol klicken und die Option aktivieren
Dateiinhalt durchsuchen.Wenn es um das Terminal geht, können Sie jedoch kein grafisches Werkzeug verwenden. Außerdem finde ich Catfish nicht sinnvoll und bevorzuge klassische Konsolentools. Hier sind die Methoden und Tools, die ich verwende.
So finden Sie Dateien mit bestimmten Texten unter Linux, Mach Folgendes.
- Öffnen Sie Ihre bevorzugte Terminal-App. XFCE4-Terminal ist meine persönliche Vorliebe.
- Geben Sie den folgenden Befehl ein:
find ./ -type f -exec grep -l "zu suchender Text" {} \;
- Dadurch wird die Liste der Dateien erstellt, die den erforderlichen Textteil enthält.
Der Befehl find sucht ab dem aktuellen Verzeichnis "./" nach Dateien. Sie können stattdessen den gewünschten Pfad angeben.
Die Option -typ f weist es an, nur nach Dateien zu suchen und Verzeichnisse auszuschließen. Sie können auch nur nach einem bestimmten Dateityp suchen, indem Sie die Option wie folgt hinzufügen:find ./ -type f -iname "*.txt" -exec grep -l "zu suchender Text" {} \;
Siehe folgenden Screenshot:
Die -exec Option ruft das grep-Tool für jede der übereinstimmenden Dateien auf, um deren Inhalt zu überprüfen. Wenn der Text in der Datei gefunden wird, wird sein Name dank der -l-Option.
Alternativen
Zu den oben beschriebenen Methoden gibt es Alternativen. Zunächst können Sie nur die grep Werkzeug. Versuchen Sie den folgenden Befehl:
grep -iRl "zu findender Text" ./
- -i steht für Ignorieren der Groß-/Kleinschreibung.
- -R steht für rekursive Dateiverarbeitung.
- -l steht für "Zeige den Dateinamen, nicht das Ergebnis selbst".
Wie Sie sehen, ist diese Methode weniger flexibel als die finden Befehl.
Mitternachtskommandant
Eine andere Methode, die ich oft verwende, ist Midnight Commander (mc), die Konsolendateimanager-App. Im Gegensatz zu find oder grep ist mc nicht standardmäßig in allen Linux-Distributionen enthalten, die ich ausprobiert habe. Möglicherweise müssen Sie es selbst installieren.
Um mit Midnight Commander nach Dateien zu suchen, die bestimmten Text enthalten, starten Sie die App und drücken Sie die folgende Sequenz auf der Tastatur:
Alt + Schicht + ?
Dies öffnet den Suchdialog.
Füllen Sie den Abschnitt "Dateiname:" aus. Sie können etwas wie "*.txt" angeben, um nur in Textdateien nach Ihrem Text zu suchen.
Füllen Sie nun das. aus Inhalt: Kasten. Geben Sie den Text ein, den die Dateien enthalten, und drücken Sie die Eingabetaste.
Es findet alle Dateien, die den Kriterien entsprechen.
Das ist es.