So finden Sie Dateien und Ordner in Linux über die Befehlszeile
Die meisten Benutzer verwenden einen grafischen Dateimanager, um Dateien in Linux zu finden, beispielsweise Nautilus in Gnome, Dolphin in KDE und Thunar in Xfce. Es gibt jedoch verschiedene Möglichkeiten, die Befehlszeile zum Suchen von Dateien in Linux zu verwenden, unabhängig davon, welchen Desktop-Manager Sie verwenden.
Verwenden des Suchbefehls
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 Dateien nach Name, 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 angezeigt.
finden .
Der Punkt hinter "find" zeigt das aktuelle Verzeichnis an.
Verwenden Sie zum Suchen von Dateien, die einem bestimmten Muster entsprechen -Name
Streit. Sie können Dateinamen-Metazeichen verwenden (z. B. *
), aber Sie sollten entweder ein Escape-Zeichen setzen ( \
) vor jedem von ihnen oder in Anführungszeichen.
Wenn wir beispielsweise alle Dateien finden möchten, die mit "pro" im Verzeichnis "Documents" beginnen, verwenden wir die CD-Dokumente /
Befehl, um zum Verzeichnis Documents zu wechseln, und geben Sie den folgenden Befehl ein:
finden . -name pro \ *
Alle Dateien im aktuellen Verzeichnis, die mit "pro" beginnen, werden aufgelistet.
ANMERKUNG: Der Befehl find gibt standardmäßig die Groß- und Kleinschreibung an. Wenn Sie die Suche nach einem Wort oder Satz nach Groß- und Kleinschreibung unterscheiden möchten, verwenden Sie die -iname
Option mit dem Befehl find. Es handelt sich dabei um die unempfindliche Version des -Name
Befehl.
Ob finden
findet keine Dateien, die Ihren Kriterien entsprechen, und erzeugt keine Ausgabe.
Für den Suchbefehl stehen viele Optionen zur Verfeinerung der Suche zur Verfügung. Um weitere Informationen zum Befehl find zu erhalten, führen Sie den Befehl aus Mann finden
in einem Terminalfenster und drücken Sie die Eingabetaste.
Verwenden des Locate-Befehls
Der locate-Befehl ist schneller als der find-Befehl, da er eine zuvor erstellte Datenbank verwendet, während der find-Befehl im realen System alle Verzeichnisse und Dateien durchsucht. Der Befehl locate gibt eine Liste aller Pfadnamen zurück, die die angegebene Gruppe von Zeichen 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 den folgenden Befehl an der Eingabeaufforderung ein:
Sudo aktualisiertb
Geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden.
Die Basisform des locate-Befehls findet alle Dateien im Dateisystem, beginnend am Stamm, die alle oder einen Teil der Suchkriterien enthalten.
mydata suchen
Der obige Befehl hat beispielsweise zwei Dateien gefunden, die "mydata" und eine Datei mit "data" enthalten.
Wenn Sie alle Dateien oder Verzeichnisse suchen möchten, die genau und nur Ihre Suchkriterien enthalten, verwenden Sie die -b
Option mit dem Befehl locate wie folgt.
Suchen Sie nach -b '\ mydata'.
Der umgekehrte Schrägstrich im obigen Befehl ist ein Globbing-Zeichen, mit dem Sie Platzhalterzeichen in einem nicht spezifischen Dateinamen in einen Satz bestimmter Dateinamen erweitern 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 und das Sternchen ( *
), die für eine zusammenhängende Zeichenfolge steht. Im obigen Beispiel deaktiviert der Backslash die implizite Ersetzung von "mydata" durch "* mydata *", sodass nur Ergebnisse angezeigt werden, die "mydata" enthalten.
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 die Datenbank wird schneller und weniger schnell auf der Festplatte aktualisiert.
Wenn Sie mlocate installieren, ändert sich die binäre Datei / usr / bin / locate in mlocate. Wenn Sie mlocate installieren möchten, geben Sie an der Eingabeaufforderung den folgenden Befehl ein, falls er nicht bereits in Ihrer Linux-Distribution enthalten ist.
sudo apt-get install mlocate
HINWEIS: Wir zeigen Ihnen später in diesem Artikel einen Befehl, mit dem Sie feststellen 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 locate. Daher möchten Sie möglicherweise die Datenbank manuell erstellen, indem Sie an der Eingabeaufforderung den folgenden Befehl eingeben:
Sudo /etc/cron.daily/mlocate
Der mlocate-Befehl funktioniert erst, wenn die Datenbank manuell erstellt wird oder wenn das Skript von cron ausgeführt wird.
Um weitere Informationen zu dem Befehl locate oder mlocate zu erhalten, geben Sie Folgendes ein Mann finden
oder Mann Mlocate
in einem Terminalfenster und drücken Sie die Eingabetaste. Der gleiche Hilfebildschirm wird für beide Befehle angezeigt.
Verwenden des which-Befehls
Der Befehl "which" gibt den absoluten Pfad der ausführbaren Datei zurück, die bei der Ausgabe eines Befehls aufgerufen wird. Dies ist nützlich, um den Speicherort einer ausführbaren Datei zu ermitteln, um eine Verknüpfung zum Programm auf dem Desktop, in einem Bedienfeld oder an einer anderen Stelle im Desktop Manager zu erstellen. Geben Sie beispielsweise den Befehl ein welche Firefox
zeigt die in der nachstehenden Abbildung gezeigten Ergebnisse an.
Standardmäßig zeigt der Befehl which nur die erste übereinstimmende ausführbare Datei an. Um alle übereinstimmenden ausführbaren Dateien anzuzeigen, verwenden Sie die -ein
Option mit dem Befehl:
was -ein Firefox
Sie können nach mehreren ausführbaren Dateien gleichzeitig suchen, wie in der folgenden Abbildung dargestellt. Es werden nur die Pfade zu gefundenen ausführbaren Dateien angezeigt. Im folgenden Beispiel wurde nur die ausführbare Datei "ps" gefunden.
HINWEIS: Mit dem Befehl wird nur die PATH-Variable des aktuellen Benutzers durchsucht. Wenn Sie nach einer ausführbaren Datei suchen, die nur für den Root-Benutzer als normaler Benutzer verfügbar ist, werden keine Ergebnisse angezeigt.
Um weitere Informationen zum 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
Der Befehl whereis wird verwendet, um herauszufinden, wo sich die Binär-, Quell- und Man-Page-Dateien für einen Befehl befinden. Zum Beispiel eingeben wo ist Firefox
An der Eingabeaufforderung werden die Ergebnisse angezeigt, wie in der folgenden Abbildung dargestellt.
Wenn nur der Pfad zur ausführbaren Datei angezeigt werden soll und nicht die Pfade zu den Quell- und den manuellen Seiten, verwenden Sie die -b
Möglichkeit. Zum Beispiel der Befehl wois -b Firefox
wird nur angezeigt / usr / bin / firefox
als Ergebnis. Dies ist praktisch, da Sie höchstwahrscheinlich öfter nach der ausführbaren Datei eines Programms suchen als nach Quell- und Man-Pages für dieses Programm. Sie können auch nur nach den Quelldateien suchen ( -s
) oder nur für die Manpages ( -m
).
Um weitere Informationen zum Befehl whereis zu erhalten, geben Sie Folgendes ein Mann wo
in einem Terminalfenster 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 Man-Seite für einen Befehl an, während der Befehl which nur die Position der Binärdatei für den Befehl angibt.
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 bestimmter Verzeichnisse im Abschnitt FILES der Manpages für den Befehl.
Wenn es sich um Ergebnisse handelt, die standardmäßig angezeigt werden, zeigt der Befehl whereis alles an, was er findet, während der Befehl which nur die erste ausführbare Datei anzeigt, die er findet. Sie können das mit dem ändern -ein
Option, die zuvor für den Befehl which beschrieben wurde.
Da der Befehl whereis nur in den Befehl hartcodierte Pfade verwendet, finden Sie möglicherweise nicht immer das, wonach Sie suchen. Wenn Sie nach einem Programm suchen, von dem Sie annehmen, 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 dem Befehl -ein
Option, um alle Vorkommen des Befehls im gesamten System zu finden.