So verwenden Sie den Befehl Suchen, um unter Linux nach Dateien zu suchen

Es gibt Zeiten, in denen Sie auf eine bestimmte Datei zugreifen möchten, diese jedoch aufgrund mangelnder Ordnerorganisation nicht auf Ihrem System finden können. Glücklicherweise bietet Ihnen Linux einige nützliche Dienstprogramme, mit denen Sie problemlos nach Dateien auf Ihrem Computer suchen können.

Der Befehl find ist ein solches Tool, mit dem anhand des Dateinamens, der Berechtigungen, der Erweiterung, der Größe usw. nach einer Datei gesucht werden kann. In diesem Handbuch wird der Befehl Linux Find erläutert und es werden einige Beispiele aufgeführt, die die Leistungsfähigkeit dieses Dienstprogramms demonstrieren.

Was ist der Suchbefehl?

Wie der Name schon sagt, kann ein Benutzer mit dem Befehl find nach Dateien suchen, die in seinem lokalen Speicher vorhanden sind. Im Gegensatz zu normalen Suchfunktionen in Linux-Dateimanagern verfügt der Befehl find über zusätzliche Funktionen, mit denen die Dateien unter bestimmten Bedingungen gefiltert werden können.

Der Befehl find bietet außerdem mehrere Kriterien zum Suchen von Dateien auf einem Computer. Sie können sogar reguläre Ausdrücke verwenden, um den Namen einer Datei mit einem bestimmten Muster abzugleichen.

So finden Sie Dateien unter Linux

Der Befehl find verfügt über zahlreiche Optionen und Funktionen, mit denen die Dateien anhand der angegebenen Bedingungen gefiltert werden.

Befehlssyntax suchen

Die grundlegende Syntax des Befehls find lautet:

 find [path] [options] [expression]

Der folgende Befehl sucht beispielsweise nach Textdateien im Verzeichnis / home .

 find /home -type f -name "*.txt"

Beachten Sie, dass Sie vor der Suche nach Dateien in Ihrem Speicher über Leseberechtigungen für dieses bestimmte Verzeichnis verfügen müssen.

Suchen Sie nach Dateien nach Namen

Die häufigste Verwendung des Befehls find ist die Suche nach einer Datei anhand ihres Namens. Verwenden Sie das Flag -name mit dem Standardbefehl, um eine Datei mit dem Dateinamen zu finden.

 find /home -type f -name filename.txt

Der oben genannte Befehl sucht im Verzeichnis / home nach einer Datei mit dem Namen filename.txt . Die Option -type f teilt dem System mit, dass wir nach einer Datei suchen.

Wenn Sie den Zeichen Fall in den Dateinamen ignorieren wollen, ersetzen Sie die -name Option mit -iname.

 find /home -type f -iname FileName

Dieser Befehl sucht eine Datei mit einem der folgenden Namen: Dateiname, Dateiname, Dateiname, FiLename usw.

Wie bei jedem anderen Linux-Befehl können Sie ihn verwenden . (Punkt), um auch den relativen Pfad des aktuellen Verzeichnisses anzugeben.

 find . -type f -name filename.txt

In ähnlicher Weise können auch / for / root und ~ for / home verwendet werden.

Suchen Sie nach Dateien nach Erweiterung

Das Suchen nach Dateien mit einer bestimmten Erweiterung kann dazu beitragen, Ihre Suchergebnisse einzugrenzen. Verwenden Sie den folgenden regulären Ausdruck mit den Flags -name und -iname, um eine Datei anhand ihrer Erweiterung zu finden.

 find /home -type f -name "*.pdf"

Dieser Befehl zeigt eine Liste aller Dateien mit der Erweiterung .pdf an . Beachten Sie, dass Sie das Sternchen ( * ) entweder mit Anführungszeichen ( "" ) oder einem Schrägstrich ( ) maskieren müssen, damit das Terminal es als Platzhalterzeichen interpretiert.

Sie können den obigen Befehl auch mit dem Flag -not umkehren. Der folgende Befehl sucht nach Dateien, die nicht die Erweiterung .pdf haben .

 find /home -type f -not -name "*.pdf"

Sie können den Befehl find sogar mit anderen Linux-Befehlen verbinden. So ändern Sie beispielsweise die Moderationsberechtigungen für jede Datei, die der Bedingung entspricht:

 find /home - type f "*.pdf" -exec chmod -777 {} ;

Dieser Befehl sucht nach allen PDF- Dateien im Verzeichnis / home und ändert ihre Berechtigungen, sodass jeder diese Dateien lesen, schreiben und ausführen kann.

Suchen Sie nach bestimmten Dateitypen

Zusätzlich zu Dateien kann der Befehl find auch nach anderen Dateitypen suchen. Verzeichnisse, symbolische Links, Sockets und Zeichengeräte sind einige der Dateitypen, die von find unterstützt werden.

Bisher haben wir die Option -type f im Befehl find verwendet. Das f steht für Datei . Um unter Linux nach anderen Dateitypen zu suchen, ersetzen Sie f durch andere reservierte Zeichen.

  • f : reguläre Dateien
  • d : Verzeichnisse
  • l : symbolische Verknüpfungen
  • c : Zeichengeräte
  • b : Geräte blockieren
  • p : Named Pipe
  • s : Steckdosen

So suchen Sie nach Unterverzeichnissen im Verzeichnis / home :

 find /home -type d

Finden Sie Dateien nach Größe

Mit dem Flag -size können Sie nach Dateien suchen, die einen bestimmten Speicherplatz auf der Festplatte beanspruchen . Die folgenden Suffixe bezeichnen die verschiedenen Dateigrößen:

  • b : 512-Byte-Blöcke
  • c : Bytes
  • w : Zwei-Byte-Wörter
  • k : Kilobyte
  • M : Megabyte
  • G : Gigabyte

So finden Sie alle Dateien mit einer Dateigröße von 1 GB:

 find /home -type f -size 1G

Um nach Dateien mit weniger als 1 GB zu suchen, fügen Sie das Minuszeichen ( ) hinzu, bevor Sie die Größe angeben:

 find /home -type f -size -1G

Verwenden Sie in ähnlicher Weise den Operator plus ( + ), um Dateien zu suchen, die größer als 1 GB sind:

 find /home -type f -size +1G

So suchen Sie nach Dateien in einem Größenbereich:

 find /home -type f -size +1M -size -10M

Suchen von Dateien mithilfe von Zeitstempeln

Möglicherweise wissen Sie bereits, dass Linux jeder Datei in Ihrem Speicher bestimmte Zeitstempel zuweist . Diese Zeitstempel enthalten die Änderungszeit, die Änderungszeit und die Zugriffszeit.

So finden Sie Dateien mit einer bestimmten Änderungszeit:

 find /home -type f -name "*.txt" -mtime 5

Mit dem oben genannten Befehl werden alle Dateien gedruckt, die in den letzten fünf Tagen geändert wurden. In ähnlicher Weise können Sie auch -atime und -ctime verwenden , um die Dateien nach der Zugriffszeit und der Änderungszeit zu filtern.

Sie können auch die Plus- und Minuszeichen verwenden , um Dateien zu finden, die größer oder kleiner als ein bestimmter Zeitstempel sind.

 find /home -type f -name "*.txt" -mtime +5

Suchen Sie nach Dateien mit bestimmten Berechtigungen

Mit der Option -perm können Benutzer nach Dateien mit bestimmten Berechtigungen suchen.

 find /home -type f -perm 777

Verwenden Sie den Schrägstrich ( / ), um die Datei aufzulisten, wenn mindestens eine Kategorie die bereitgestellten Berechtigungen korrigiert hat.

 find /home -type f -perm /777

Dateien nach Eigentümer suchen

Verwenden Sie das Flag -user , um Dateien abzurufen , die einem bestimmten Benutzer gehören.

 find /home -user randomuser

Suchen und Löschen von Dateien

Um alle gefilterten Dateien mit find zu löschen, fügen Sie am Ende des Befehls das Flag -delete hinzu .

 find /home -type f -name "*.pdf" -delete

Mit dem oben genannten Befehl werden alle PDF- Dateien gelöscht, die im Verzeichnis / home vorhanden sind .

Sie können nicht leere Verzeichnisse mit find nicht löschen. Sie müssen den Befehl rm verwenden, um solche Ordner auf Ihrem Linux-System zu löschen .

Dateien unter Linux organisieren

Das Auffinden von Dateien ist schwierig, wenn Sie Hunderte von Verzeichnissen auf Ihrem System ohne entsprechende Namen haben. Der Befehl find ist praktisch, wenn Sie Dateien in einem Verzeichnis nach einem bestimmten Kriterium herausfiltern möchten.

Um Ihren Speicher auf einem Linux-System optimal nutzen zu können, sind die Organisation und Verwaltung von Dateien ein Muss. Durch die richtige Gruppierung von Ordnern und das Entfernen redundanter Daten können Sie schnell auf die gewünschten Dateien zugreifen.