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.