Diese Anleitung zeigt Ihnen, wie Sie mit den Befehlen „find“ und „locate“ Dateien und Verzeichnisse in Ihren Linux-Dateisystemen finden.
Inhaltsverzeichnis
- Suchen Sie Dateien und Verzeichnisse in Linux mit dem Suchbefehl
- Dateien nach Namen suchen
- Dateien nach Teilnamen suchen
- Dateien nach Größe suchen
- Dateien anhand von Zeitstempeln finden
- Dateien nach Besitzer suchen
- Dateien nach Berechtigungen suchen
- Verzeichnisse nach Namen suchen
- Suchen Sie Dateien und Verzeichnisse in Linux mit dem locate-Befehl
- Dateien nach Namen suchen
- Dateien nach Teilnamen suchen
- Suchergebnisse einschränken
- Anzeige der Anzahl der übereinstimmenden Einträge
- Informationen zum Suchen der Datenbank erhalten
- Schlussfolgerung
Es gibt Zeiten, in denen Sie auf eine bestimmte Datei zugreifen möchten, diese aber auf Ihrem Linux-System nicht finden können. Obwohl es viele Möglichkeiten gibt, Dateien und Verzeichnisse unter Linux zu suchen und zu finden, ist die einfachste und schnellste wahrscheinlich über das Terminal.
Der find
command ist eines der wichtigsten und am häufigsten verwendeten Befehlszeilenprogramme in Linux.
Dateien und Verzeichnisse in Linux mit dem find-Befehl suchen
Die Linux find
command ist ein leistungsstarkes Tool, mit dem Systemadministratoren Dateien und Verzeichnisse basierend auf einer Vielzahl von Suchkriterien finden und verwalten können. Es unterstützt die Suche nach Datei, Ordner, Name, Erstellungsdatum, Änderungsdatum, Besitzer und Berechtigungen.
Das find
Der Befehl wird verwendet, um Dateien und Verzeichnisse zu finden und nachfolgende Operationen an ihnen auszuführen. Es sucht rekursiv nach Dateien und Verzeichnissen in jedem Pfad. Also, wenn der find
Wenn der Befehl auf ein Verzeichnis innerhalb des angegebenen Pfads trifft, sucht er nach anderen Dateien und Verzeichnissen darin.
Dateien nach Namen suchen
Die allgemeine Syntax von find
Befehl ist:
find [path] [options] [expression]
Lassen Sie uns diese Syntax aufschlüsseln:
path
: Definiert das Startverzeichnis, in dem find die Dateien durchsucht.options
: Steuert diefind
Prozessverhalten und Optimierungsmethode.expression
: Dieses Attribut besteht aus Optionen, Suchmustern und Aktionen, die durch Operatoren getrennt sind.
Die häufigste Verwendung des Find-Befehls ist die Suche nach einer Datei anhand ihres Namens. Der -type f
Option teilt dem System mit, dass wir nach einer Datei suchen. Um eine Datei anhand des Dateinamens zu finden, verwenden Sie den -name
Flag mit dem Standardbefehl.
Zum Beispiel, um nach einer Datei mit dem Namen report.pdf
zu suchen im /home
Verzeichnis verwenden Sie den folgenden Befehl:
find /home -type f -name report.pdf
Wie Sie wissen, unterscheidet Linux bei Dateinamen zwischen Groß- und Kleinschreibung , wenn Sie also nach einer Datei mit dem Namen Report.pdf
suchen , gibt der oben gezeigte Befehl keine Ergebnisse zurück. In diesem Fall müssen Sie den -iname
verwenden Option anstelle von -name
.
Der -iname
Option führt eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung aus , also können wir das tun:
find /home -type f -iname report.pdf
Dieser Befehl findet eine Datei mit einem der folgenden Namen:report.pdf
, Report.pdf
, REPORT.pdf
usw.
Dateien nach Teilnamen suchen
Sie können Dateinamen-Metazeichen verwenden wie Sternchen (*
), aber Sie sollten entweder ein Escape-Zeichen (\
) vor jedem von ihnen oder schließen Sie sie in Anführungszeichen ein.
Zum Beispiel, um alle Dateien zu finden, die auf .pdf
enden , könnten Sie Folgendes ausführen:
find /home -type f -name '*.pdf'
was dasselbe ist wie:
find /home -type f -name \*.pdf
Ebenso, um alle Dateien auf Ihrem Linux-System zu finden, deren Namen mit report
beginnen , könnten Sie Folgendes ausführen:
find /home -type f -name 'report*'
Dateien nach Größe suchen
Mit find
Befehl können wir auch leicht etwas erreichen, das kompliziert aussehen könnte:Dateien finden, die größer oder kleiner als die angegebene Größe sind .
Die -size
Option auf find
ermöglicht es uns, nach Dateien einer bestimmten Größe zu suchen. Das +
und -
Präfixe bedeuten wie üblich „größer als“ und „kleiner als“.
Das folgende Beispiel sucht nach allen Dateien, die größer als 1 Gigabyte sind. Beachten Sie die Verwendung von +
Zeichen:
find /home -type f -size +1G
Im obigen Beispiel das Suffix G
bezeichnet Gigabyte. Die anderen beliebten verfügbaren Suffixe sind:
c
:Bytes.k
:Kilobyte.M
:Megabyte.
Oben find
Befehl wurde verwendet, um nach allen Dateien zu suchen, die größer als die angegebene Größe sind. Als nächstes find
Befehlsbeispiel sucht nach allen Dateien mit einer Größe von weniger als 200 Kilobyte. Beachten Sie die Verwendung von -
Zeichen:
find /home -type f -size -200k
Jetzt fragen Sie sich wahrscheinlich, wie man unter Linux Dateien zwischen einer bestimmten Größe findet . Beispielsweise können Sie mit dem folgenden Befehl nach Dateien zwischen 100 Megabyte und 120 Megabyte suchen:
find /home -type f -size +100M -size -120M
Dateien mit Zeitstempeln finden
Linux weist jeder einzelnen Datei im Dateisystem bestimmte Zeitstempel zu. Die find
Der Befehl kann auch nach Dateien basierend auf ihrer letzten Änderung suchen , zugreifen oder Zeit ändern.
Die -mtime
Option wird verwendet, um die Anzahl der Tage anzugeben, die die Datei alt ist. Der Ausdruck kann auf zwei Arten verwendet werden:
-mtime +N
findet die Dateien, die mehr alsN
geändert wurden vor Tagen (für mehr als).-mtime -N
findet die Dateien, die weniger alsN
geändert wurden vor Tagen (für weniger als).
Zum Beispiel, wenn Sie +3
eingeben , findet es alle Dateien aus /home
Verzeichnis älter als 3 Tage.
find /home -type f -mtime +3
Ebenso, wenn wir alle Dateien finden wollen, die sich in den letzten 24 Stunden geändert haben:
find /home -type f -mtime -1
Auf die gleiche Weise können Sie -mmin N
verwenden Ausdruck, um sich auf Minuten statt Tage zu verlassen.
Dieser Befehl findet beispielsweise alle Dateien aus /home
Verzeichnis in letzter Minute geändert.
find /home -type f -mmin -1
Darüber hinaus können wir sogar Ausdrücke verfassen. So finden Sie Dateien in Linux, die vor weniger als 60 Minuten und vor mehr als 30 Minuten geändert wurden:
find /home -type f -mmin -60 -mmin +30
Dateien nach Besitzer suchen
Um Dateien zu finden, die einem bestimmten Nutzer oder einer bestimmten Gruppe gehören, verwenden Sie den -user
und -group
Optionen.
Zum Beispiel, um Dateien zu finden, die dem Benutzer john
gehören im /home
Ordner des Servers:
find /home -type f -user john
Find all files gehört zu einer Gruppe namens www-data
im /home
Verzeichnis:
find /home -type f -group www-data
Dateien nach Berechtigungen suchen
Die -perm
Option ermöglicht es Benutzern, nach Dateien mit bestimmten Berechtigungen zu suchen .
Der folgende Befehl findet die Dateien mit der Berechtigung genau 644 im aktuellen Verzeichnis.
find /home -type f -perm 644
Die Verwendung des -
Option bedeutet „mindestens diese Berechtigungsstufe ist festgelegt und alle höheren Berechtigungen.“
find /home -type f -perm -644
Dieses Beispiel zeigt alle Ressourcen in /home
an Verzeichnis mit mindestens 644
Berechtigungen. Das bedeutet, dass Dateien mit den Berechtigungen wie 777
, 745
, 666
, 655
, 654
usw. passen, während Dateien mit den Berechtigungen 642
, 611
, 600
, 544
usw. würden nicht übereinstimmen.
Verzeichnisse nach Namen suchen
Alle Beispiele, die wir bisher gesehen haben, geben Dateien zurück. Wenn Sie jedoch nur nach Verzeichnissen suchen müssen, können Sie den -type d
verwenden wechseln.
Mit anderen Worten, Sie können das find
verhindern Befehl in Linux daran zu hindern, nach anderen Dateitypen außer Verzeichnissen zu suchen, indem Sie -type d
verwenden Flag (d
bedeutet Verzeichnis).
So finden Sie einen Ordner mit dem Namen scripts
im /home
Verzeichnis, führen Sie aus:
find /home -type d -name scripts
Ebenso gelten alle anderen bisher gezeigten Optionen auch für die Suche nach Verzeichnissen.
Weitere Informationen zu find
Befehl unter Linux finden Sie auf der Handbuchseite.
Suchen Sie Dateien und Verzeichnisse in Linux mit dem locate-Befehl
Während find
ist zweifellos eines der beliebtesten und leistungsstärksten Befehlszeilenprogramme für die Dateisuche unter Linux, es ist jedoch nicht schnell genug für Situationen, in denen Sie sofortige Ergebnisse benötigen.
Der locate
Befehl ist schneller als find
Befehl, da er eine zuvor erstellte Datenbank verwendet, wohingegen der Befehl find
Befehl durchsucht in Echtzeit alle aktuellen Verzeichnisse und Dateien.
Wenn locate
nicht installiert ist, können Sie es einfach mit dem Paketmanager Ihrer Linux-Distribution installieren.
Geben Sie unter Ubuntu oder einem anderen Debian-basierten System den folgenden Befehl ein:
sudo apt install mlocate
Wenn Sie Fedora oder CentOS verwenden, verwenden Sie stattdessen diesen Befehl:
sudo dnf install mlocate
Benutzer von Arch Linux müssen Folgendes ausführen:
sudo pacman -S mlocate
Vor locate
verwendet werden kann, muss die Datenbank erstellt werden. Dies geschieht mit der updatedb
Befehl, der (wie der Name schon sagt) die Datenbank aktualisiert.
sudo updatedb
Die Datenbank wird täglich automatisch aktualisiert, Sie können sie aber auch jederzeit selbst aktualisieren, um minutengenaue Ergebnisse zu erhalten.
Dateien nach Namen suchen
Der locate
Befehl ist sehr einfach zu bedienen. Alles, was Sie tun müssen, ist, ihm den Dateinamen zu übergeben, den Sie suchen möchten.
locate report.pdf
Genauso wie find
Befehl, locate
ist so konfiguriert, dass Abfragen unter Berücksichtigung der Groß-/Kleinschreibung verarbeitet werden. Um locate
zu haben Befehl Groß-/Kleinschreibung ignorieren und Ergebnisse sowohl für Groß- als auch für Kleinbuchstaben anzuzeigen, müssen Sie das -i
verwenden Option.
locate -i rEpoRT.pdf
Dateien nach Teilnamen suchen
Wenn Sie nach allen Dateinamen suchen möchten, die die Zeichenfolge .pdf
enthalten darin, dann kannst du das mit locate
machen wie folgt:
locate '*.pdf'
Suchergebnisse einschränken
Sie können Ihre Suchergebnisse einschränken zu einer erforderlichen Nummer, um Redundanzen mit Ihren Suchergebnissen zu vermeiden, indem Sie das -n
verwenden Option.
Wenn Sie beispielsweise nur 10 Ergebnisse aus Ihren Abfragen erhalten möchten, können Sie den folgenden Befehl eingeben:
locate -n 10 '*.pdf'
Anzeige der Anzahl der passenden Einträge
Um die Anzahl der Vorkommen eines Dateinamens oder Suchmusters mit dem Befehl „locate“ zu zählen, rufen Sie den -c
auf Option wie gezeigt.
locate -c '*.pdf'
Informationen zum Suchen der Datenbank erhalten
Um mehr Einblicke in die Locate-Datenbank mlocate.db
zu erhalten das locate
katalogisiert hat, verwenden Sie das -S
Möglichkeit:
locate -S
Database /var/lib/mlocate/mlocate.db:
72376 directories
1142596 files
98622214 bytes in file names
33950606 bytes used to store database
Falls Sie es brauchen, hier ist die Manpage für locate
Befehl.
Schlussfolgerung
Es gibt zwei am weitesten verbreitete Hilfsprogramme für die Dateisuche, die Linux-Benutzern zur Verfügung stehen:find
und locate
. Beide sind gute Möglichkeiten, Dateien auf Ihrem System zu finden. Es liegt an Ihnen, zu entscheiden, welches dieser Tools in der jeweiligen Situation angemessen ist.
Dieser Artikel soll Ihnen ein grundlegendes Verständnis dafür vermitteln, wie Sie Dateien auf Ihren Linux-Systemen finden. Auch wenn Optionen einzeln angeboten wurden, sollten Sie bedenken, dass sie kombiniert werden können, um die gesuchten Dateien noch genauer spezifizieren zu können.