GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Finden Sie Dateien und Verzeichnisse in Linux wie ein Profi

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 die find 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 als N geändert wurden vor Tagen (für mehr als).
  • -mtime -N findet die Dateien, die weniger als N 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.


Linux
  1. So finden Sie die wichtigsten Verzeichnisse und Dateien (Festplattenspeicherplatz) in Linux heraus

  2. Eine einfache Möglichkeit, Dateien und Verzeichnisse in Linux zu verstecken

  3. Finden Sie die größten Dateien und Verzeichnisse in Linux

  4. Linux – Standard- und/oder gemeinsame Verzeichnisse auf Unix/Linux-Betriebssystemen?

  5. Linux Dateien und Verzeichnisse löschen

So benennen Sie Dateien und Verzeichnisse in Linux um

Ls-Befehl in Linux (Dateien und Verzeichnisse auflisten)

So komprimieren Sie Dateien und Verzeichnisse unter Linux

3 Möglichkeiten, Dateien und Verzeichnisse in Linux zu finden

So finden und löschen Sie leere Verzeichnisse in Linux

Finden Sie Dateien und Verzeichnisse unter Linux ganz einfach