Website-Suche

So suchen Sie unter Linux über die Befehlszeile nach Dateien


Wenn Sie Probleme beim Auffinden von Dateien in Ihrer Linux-Distribution haben, gibt es ein integriertes Befehlszeilentool, das Ihnen die Arbeit erheblich erleichtert.

Ich verwende Linux seit Jahrzehnten und obwohl die Befehlszeile für mich selbstverständlich ist, entscheide ich mich immer noch für die Verwendung von GUI-Tools, da diese tendenziell weitaus effizienter sind als ihre terminalbasierten Gegenstücke. Es gibt jedoch eine Aufgabe, für die ich mich immer an die Befehlszeile wende – und das ist das Suchen von Dateien. 

Ja, für diesen Zweck stehen zahlreiche GUI-Tools zur Verfügung und viele Desktop-Umgebungen integrieren die Funktion in ihre Anwendungsmenüs. Ich finde jedoch, dass einige dieser Optionen nicht besonders gut zum Auffinden von Dateien geeignet sind und ihre Indizierung manchmal zu Systemverlangsamungen führen kann. Aus diesen Gründen bevorzuge ich es, ein Terminalfenster zu öffnen und die betreffende Datei zu suchen.

Der einzige Nachteil dieser Methode besteht darin, dass Sie im Gegensatz zur Verwendung einer GUI eine einmal gefundene Datei manuell öffnen müssen. Das GUI-Tool findet die Datei und ermöglicht Ihnen dann, sie einfach per Mausklick (oder Doppelklick) zu öffnen. Mit der Befehlszeilenoption wird Ihnen der Speicherort der Datei angezeigt. Anschließend müssen Sie die zugehörige Anwendung öffnen und die Datei über das Menü „Datei“ > „Öffnen“ der Anwendung öffnen. Allerdings ist dieser manuelle Prozess ein Kompromiss, den ich im Hinblick auf die Geschwindigkeit und Genauigkeit des Befehlszeilentools in Kauf nehmen möchte.

Lassen Sie mich Ihnen zeigen, wie Sie das Tool verwenden. 

So finden Sie eine Datei über die CLI

Was Sie benötigen: Das Einzige, was Sie für diese Aufgabe benötigen, ist eine laufende Instanz nahezu jeder Linux-Distribution. Ich verwende den Befehl find aus zwei Gründen: Er ist standardmäßig installiert und einfach zu verwenden. Lassen Sie mich Ihnen zeigen, wie einfach es ist, eine Datei unter Linux zu finden.

1. Die grundlegende Verwendung des Suchbefehls

Öffnen Sie ein Terminalfenster über Ihr Desktop-Menü. Geben Sie bei geöffneter Terminal-App die Syntax für den grundlegenden Suchbefehl ein:

find -name FILE

Im obigen Befehl ist FILE der Name der Datei, nach der Sie suchen.

Lassen Sie mich nun ein paar Dinge erklären. Zunächst „benennen“ Sie ein passendes Muster. Sie können find ohne Namen verwenden, aber die gesuchte Datei wird nicht gefunden, es sei denn, Sie befinden sich im richtigen Verzeichnis, in dem sich die Datei befindet. Diese Einschränkung nützt wahrscheinlich kaum oder gar nichts. Denken Sie also immer daran, -name zum Befehl hinzuzufügen, damit die betreffende Datei gefunden wird, unabhängig davon, wo Sie den Befehl ausgeführt haben.

Zweitens unterscheidet FILE zwischen Groß- und Kleinschreibung. Wenn Sie nach einer Datei mit dem Namen MyFile suchen und den Befehl find -name myfile verwenden, kann find die Datei nicht finden. Drittens kann der Befehl „find“ nur nach Dateien in Verzeichnissen suchen, zu deren Anzeige Sie berechtigt sind. Wenn find auf ein Verzeichnis stößt, auf das Sie keinen Zugriff haben, erhalten Sie die Fehlermeldung Permission Denied.

2. Ein Trick und eine Falle

Nehmen wir an, Sie suchen nach MyFile.txt. Sie können einfach den folgenden Befehl ausführen:

find -name MyFile.txt

Aber was ist, wenn Sie Dateien mit den Namen MyFile.txt, MyFile,odt und MyFile.rtf haben und wissen möchten, wo sich diese alle befinden? In dieser Situation könnten Sie den Platzhalter * verwenden, etwa so:

find -name MyFile.*

Jetzt sucht find nach allen Instanzen von MyFile und meldet, wo sie sich befinden.

Dieser Trick birgt jedoch eine Falle. Nehmen wir an, Sie haben MyFile.rtf in Ihrem Home-Verzeichnis (auch bekannt als ~/), MyFile.odt in Ihrem Download-Verzeichnis und MyFile.txt in Ihrem Dokumentenverzeichnis. 

Wenn Sie sich in Ihrem Home-Verzeichnis befinden und den Befehl find -name MyFile.* eingeben, findet der Befehl MyFile.rtf im Home-Verzeichnis und beendet die Suche. 

Wenn Sie sich jedoch im Stammverzeichnis Ihres Systems (auch bekannt als /) befinden und den Befehl find ausführen, werden alle drei Dateien gefunden. Die Ausgabe ähnelt dieser:

./jack/MyFile.rtf
./jack/Downloads/MyFile.odt
./jack/Documents/MyFile.txt

Es gibt einen anderen Weg, diese Falle zu umgehen, indem Sie den Dateinamen in Anführungszeichen setzen, etwa so:

find -name "MyFile.*"

Selbst wenn Sie sich in Ihrem Home-Verzeichnis befinden, setzt find die Suche fort, nachdem die erste Instanz der Datei gefunden wurde. Mein Rat ist, sich anzuwöhnen, Dateinamen immer in Anführungszeichen zu setzen.

Und so einfach ist es, Dateien unter Linux über die Befehlszeile zu finden. 

Verwandte Artikel