So finden Sie Dateien und Ordner unter Linux über die Befehlszeile

Die meisten Benutzer verwenden einen grafischen Dateimanager, um Dateien unter Linux zu finden, z. B. Nautilus in Gnome, Dolphin in KDE und Thunar in Xfce. Es gibt jedoch verschiedene Möglichkeiten, die Befehlszeile zum Suchen von Dateien unter Linux zu verwenden, unabhängig davon, welchen Desktop-Manager Sie verwenden.

Verwenden des Befehls Suchen

Mit dem Befehl "find" können Sie nach Dateien suchen, für die Sie die ungefähren Dateinamen kennen. Die einfachste Form des Befehls sucht nach Dateien im aktuellen Verzeichnis und rekursiv durch seine Unterverzeichnisse, die den angegebenen Suchkriterien entsprechen. Sie können nach Namen, Eigentümer, Gruppe, Typ, Berechtigungen, Datum und anderen Kriterien suchen.

Wenn Sie an der Eingabeaufforderung den folgenden Befehl eingeben, werden alle im aktuellen Verzeichnis gefundenen Dateien aufgelistet.

finden .

Der Punkt nach "Suchen" gibt das aktuelle Verzeichnis an.

Verwenden Sie das -nameArgument, um Dateien zu finden, die einem bestimmten Muster entsprechen . Sie können Dateinamen-Metazeichen (z. B. *) verwenden, aber Sie sollten entweder ein Escape-Zeichen ( \) vor jedes von ihnen setzen oder sie in Anführungszeichen setzen.

Wenn wir beispielsweise alle Dateien, die mit "pro" beginnen, im Verzeichnis "Dokumente" suchen möchten, verwenden wir den cd Documents/Befehl, um in das Verzeichnis "Dokumente" zu wechseln, und geben dann den folgenden Befehl ein:

finden . -name pro \ *

Alle Dateien im aktuellen Verzeichnis, die mit "pro" beginnen, werden aufgelistet.

HINWEIS: Der Befehl find unterscheidet standardmäßig zwischen Groß- und Kleinschreibung. Wenn bei der Suche nach einem Wort oder einer Phrase die Groß- und Kleinschreibung nicht berücksichtigt werden soll, verwenden Sie die -inameOption mit dem Befehl find. Bei dieser Version des -nameBefehls wird die Groß- und Kleinschreibung nicht berücksichtigt.

Wenn findkeine Dateien gefunden werden, die Ihren Kriterien entsprechen, wird keine Ausgabe erstellt.

Der Befehl find bietet viele Optionen zum Verfeinern der Suche. Weitere Informationen zum Befehl find erhalten Sie man find  in einem Terminalfenster und drücken Sie die Eingabetaste.

Verwenden des Befehls "Suchen"

Der Befehl find ist schneller als der Befehl find, da er eine zuvor erstellte Datenbank verwendet, während der Befehl find im realen System alle tatsächlichen Verzeichnisse und Dateien durchsucht. Der Befehl find gibt eine Liste aller Pfadnamen zurück, die die angegebene Zeichengruppe enthalten.

Die Datenbank wird regelmäßig von cron aktualisiert. Sie können sie jedoch auch jederzeit selbst aktualisieren, um aktuelle Ergebnisse zu erhalten. Geben Sie dazu an der Eingabeaufforderung den folgenden Befehl ein:

sudo aktualisiertb

Geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden.

Die Grundform des Befehls "find" findet alle Dateien im Dateisystem, beginnend im Stammverzeichnis, die alle oder einen Teil der Suchkriterien enthalten.

finde mydata

Mit dem obigen Befehl wurden beispielsweise zwei Dateien mit "mydata" und eine Datei mit "data" gefunden.

Wenn Sie alle Dateien oder Verzeichnisse suchen möchten, die genau und nur Ihre Suchkriterien enthalten, verwenden Sie die -bOption mit dem Befehl " Suchen" wie folgt.

Suchen Sie -b '\ mydata'

Der Backslash im obigen Befehl ist ein Globbing-Zeichen, mit dem Platzhalterzeichen in einem unspezifischen Dateinamen in eine Reihe bestimmter Dateinamen erweitert werden können. Ein Platzhalter ist ein Symbol, das bei der Auswertung des Ausdrucks durch ein oder mehrere Zeichen ersetzt werden kann. Die häufigsten Platzhaltersymbole sind das Fragezeichen ( ?), das für ein einzelnes Zeichen steht, und das Sternchen ( *), das für eine zusammenhängende Zeichenfolge steht. Im obigen Beispiel deaktiviert der Backslash das implizite Ersetzen von "mydata" durch "* mydata *", sodass nur Ergebnisse mit "mydata" angezeigt werden.

Der Befehl mlocate ist eine neue Implementierung von locate. Es indiziert das gesamte Dateisystem, aber die Suchergebnisse enthalten nur Dateien, auf die der aktuelle Benutzer Zugriff hat. Wenn Sie die mlocate-Datenbank aktualisieren, werden Zeitstempelinformationen in der Datenbank gespeichert. Auf diese Weise kann mlocate feststellen, ob sich der Inhalt eines Verzeichnisses geändert hat, ohne den Inhalt erneut zu lesen, und Aktualisierungen der Datenbank werden schneller und weniger anspruchsvoll für Ihre Festplatte.

Wenn Sie mlocate installieren, ändert sich die Binärdatei / usr / bin / Locate und zeigt auf mlocate. Geben Sie zum Installieren von mlocate den folgenden Befehl an der Eingabeaufforderung ein, falls es nicht bereits in Ihrer Linux-Distribution enthalten ist.

sudo apt-get install mlocate

HINWEIS: Wir werden Ihnen später in diesem Artikel einen Befehl zeigen, mit dem Sie bestimmen können, wo sich die ausführbare Datei für einen Befehl befindet, falls vorhanden.

Der Befehl mlocate verwendet nicht dieselbe Datenbankdatei wie der Standardbefehl lococate. Daher möchten Sie die Datenbank möglicherweise manuell erstellen, indem Sie an der Eingabeaufforderung den folgenden Befehl eingeben:

sudo /etc/cron.daily/mlocate

Der Befehl mlocate funktioniert erst, wenn die Datenbank entweder manuell erstellt wurde oder wenn das Skript von cron ausgeführt wird.

Geben Sie man locateoder man mlocate  in ein Terminalfenster ein und drücken Sie die Eingabetaste, um weitere Informationen zum Befehl "Suchen" oder "mlocate" zu erhalten . Für beide Befehle wird der gleiche Hilfebildschirm angezeigt.

Verwenden des Befehls Which

Der Befehl "which" gibt den absoluten Pfad der ausführbaren Datei zurück, die aufgerufen wird, wenn ein Befehl ausgegeben wird. Dies ist nützlich, um den Speicherort einer ausführbaren Datei zum Erstellen einer Verknüpfung zum Programm auf dem Desktop, in einem Bedienfeld oder an einer anderen Stelle im Desktop-Manager zu ermitteln. Wenn Sie beispielsweise den Befehl eingeben, werden die which firefox in der folgenden Abbildung gezeigten Ergebnisse angezeigt.

Standardmäßig zeigt der Befehl which nur die erste übereinstimmende ausführbare Datei an. Verwenden Sie die -aOption mit dem Befehl, um alle übereinstimmenden ausführbaren Dateien anzuzeigen :

welches -a Firefox

Sie können mit mehreren ausführbaren Dateien gleichzeitig suchen, wie in der folgenden Abbildung dargestellt. Es werden nur die gefundenen Pfade zu ausführbaren Dateien angezeigt. Im folgenden Beispiel wurde nur die ausführbare Datei "ps" gefunden.

HINWEIS: Der Befehl which durchsucht nur die PATH-Variable des aktuellen Benutzers. Wenn Sie nach einer ausführbaren Datei suchen, die nur für den Root-Benutzer als normalen Benutzer verfügbar ist, werden keine Ergebnisse angezeigt.

Um weitere Informationen zu dem Befehl which zu erhalten, geben Sie an der Eingabeaufforderung in einem Terminalfenster "man which" (ohne Anführungszeichen) ein und drücken Sie die Eingabetaste.

Verwenden des Whereis-Befehls

Mit dem Befehl whereis können Sie herausfinden, wo sich die Binär-, Quell- und Manpage-Dateien für einen Befehl befinden. Wenn Sie beispielsweise whereis firefox an der Eingabeaufforderung tippen, werden die Ergebnisse wie in der folgenden Abbildung dargestellt angezeigt.

Wenn nur der Pfad zur ausführbaren Datei angezeigt werden soll und nicht die Pfade zur Quelle und zu den Manpages, verwenden Sie die -bOption. Beispielsweise wird der Befehl whereis -b firefoxnur /usr/bin/firefoxals Ergebnis angezeigt . Dies ist praktisch, da Sie höchstwahrscheinlich häufiger nach der ausführbaren Datei eines Programms suchen als nach Quell- und Manpages für dieses Programm. Sie können auch nur nach den Quelldateien ( -s) oder nur nach den Manpages ( -m) suchen .

Um weitere Informationen zum Befehl whereis zu erhalten, geben Sie man whereis ein Terminalfenster ein und drücken Sie die Eingabetaste.

Den Unterschied zwischen dem Whereis-Befehl und dem Which-Befehl verstehen

Der Befehl whereis zeigt Ihnen den Speicherort für die Binär-, Quell- und Manpages für einen Befehl an, während der Befehl which nur den Speicherort der Binärdatei für den Befehl anzeigt.

Der Befehl whereis durchsucht eine Liste bestimmter Verzeichnisse nach Binär-, Quell- und Man-Dateien, während der Befehl which die Verzeichnisse durchsucht, die in der Umgebungsvariablen PATH des aktuellen Benutzers aufgeführt sind. Für den Befehl whereis finden Sie die Liste der spezifischen Verzeichnisse im Abschnitt FILES der Manpages für den Befehl.

Wenn es um standardmäßig angezeigte Ergebnisse geht, zeigt der Befehl whereis alles an, was er findet, während der Befehl which nur die erste gefundene ausführbare Datei anzeigt. Sie können dies mit der zuvor beschriebenen -aOption für den Befehl which ändern .

Da der Befehl whereis nur Pfade verwendet, die fest im Befehl codiert sind, finden Sie möglicherweise nicht immer das, wonach Sie suchen. Wenn Sie nach einem Programm suchen, von dem Sie glauben, dass es in einem Verzeichnis installiert ist, das nicht in den Manpages für den Befehl whereis aufgeführt ist, möchten Sie möglicherweise den Befehl which mit der -aOption verwenden, um alle Vorkommen des Befehls im gesamten System zu finden.