Die Suche nach Dateien ist relativ einfach, wenn Sie eine GUI verwenden. In bestimmten Umgebungen wie Servern ohne GUI müssen Sie jedoch über die Befehlszeile nach Dateien suchen.
Es gibt einen leistungsstarken Befehl in Linux, der Ihnen bei der Suche nach Dateien und Ordnern mit dem Namen find
hilft . In diesem Artikel besprechen wir den find
Befehl mit einigen Beispielen.
Was ist der find-Befehl in Linux?
Der find
Mit dem Befehl können Sie effizient nach Dateien, Ordnern und Zeichen- und Blockgeräten suchen.
Unten ist die grundlegende Syntax von find
Befehl:
find /path/ -type f -name file-to-search
Wo,
/path
ist der Pfad, in dem die Datei erwartet wird. Dies ist der Ausgangspunkt für die Suche nach Dateien. Der Pfad kann auch/
sein oder.
die das Stammverzeichnis bzw. das aktuelle Verzeichnis darstellen.-type
stellt die Dateideskriptoren dar. Sie können eine der folgenden sein:
f
– Normale Datei wie Textdateien, Bilder und versteckte Dateien.
d
– Verzeichnis . Dies sind die betrachteten Ordner.
l
– Symbolischer Link . Symbolische Links verweisen auf Dateien und ähneln Verknüpfungen.
c
– Zeichengeräte . Dateien, die für den Zugriff auf Zeichengeräte verwendet werden, werden als Zeichengerätedateien bezeichnet. Treiber kommunizieren mit Zeichengeräten, indem sie einzelne Zeichen (Bytes, Oktette) senden und empfangen. Beispiele sind Tastaturen, Soundkarten und Mäuse.
b
– Geräte blockieren . Dateien, die für den Zugriff auf Blockgeräte verwendet werden, werden als Blockgerätedateien bezeichnet. Treiber kommunizieren mit Blockgeräten, indem sie ganze Datenblöcke senden und empfangen. Beispiele sind USB, CD-ROM
-name
ist der Name des Dateityps, den Sie durchsuchen möchten.
Beispiele für den find-Befehl
Jetzt kennen wir die Syntax von find
Befehl, sehen wir uns einige Beispiele an.
So suchen Sie Dateien nach Namen oder Erweiterung
Angenommen, wir müssen Dateien finden, die "Stil" in ihrem Namen enthalten. Wir verwenden diesen Befehl:
find . -type f -name style*
Ausgabe
Nehmen wir nun an, wir möchten Dateien mit einer bestimmten Erweiterung wie .html
finden . Wir ändern den Befehl wie folgt:
find . -type f -name *.html
Ausgabe
So suchen Sie versteckte Dateien
Versteckte Dateien werden durch einen Punkt am Anfang des Dateinamens dargestellt. Sie sind normalerweise versteckt, können aber mit ls -a
angezeigt werden im aktuellen Verzeichnis.
Wir können find
ändern Befehl wie unten gezeigt, um nach versteckten Dateien zu suchen.
find . -type f -name ".*"
Ausgabe
So suchen Sie Protokolldateien und Konfigurationsdateien
Protokolldateien haben normalerweise die Erweiterung .log
, und wir können sie so finden:
find . -type f -name "*.log"
Ausgabe
Ebenso können wir wie folgt nach Konfigurationsdateien suchen:
find . -type f -name "*.conf"
So suchen Sie andere Dateien nach Typ
Wir können nach Zeichenblockdateien suchen, indem wir c
angeben -type
:
find / -type c
Auf ähnliche Weise können Geräteblockdateien mit b
gefunden werden :
find / -type b
Wie man Verzeichnisse durchsucht
Im folgenden Beispiel finden wir die Ordner mit dem Namen lib
. Beachten Sie, dass wir -type d
verwenden .
find . -type d -name "lib*"
Ausgabe
💡 Tipp:Wir können Verzeichnisse anhand des d
identifizieren Flag in der Ausgabe von ls -lrt
.
So suchen Sie Dateien nach Größe
Eine unglaublich hilfreiche Verwendung von find
Der Befehl besteht darin, Dateien basierend auf einer bestimmten Größe aufzulisten.
find / -size +250MB
Andere Einheiten sind:
G
:Gigabyte.M
:Megabyte.K
:KiloBytesb
:Bytes.
Ersetzen Sie einfach
find <directory> -type f -size +N<Unit Type>
So suchen Sie Dateien nach Änderungszeit
find /path -name "*.txt" -mtime -10
- -mtime +10 bedeutet, dass Sie nach einer Datei suchen, die vor 10 Tagen geändert wurde.
- -mtime -10 bedeutet weniger als 10 Tage.
- -mtime 10 Wenn Sie + oder – überspringen, bedeutet dies genau 10 Tage.
Unten ist der Inhalt meines Home-Verzeichnisses:
Lassen Sie uns ein Beispiel in meinem Home-Verzeichnis anwenden.
find . -type f -name ".*" -mtime +10
Praktische Beispiele für find
mit Bash-Skripten
Wir können find
kombinieren mit rm
oder mv
um aussagekräftige Bash-Skripte zu erstellen, die automatisiert werden können.
Angenommen, wir möchten ein Skript erstellen, das Protokolldateien, die älter als 7 Tage sind, in einen Sicherungspfad verschiebt. Von dort werden Protokolldateien gelöscht, die älter als 30 Tage sind. Wir können ein Skript erstellen und es mit cron
planen . Sie können mehr über cron
erfahren Jobs hier.
Sehen wir uns das Skript an:
#!/bin/bash
# Script to move from logs older than 7 days to backup logs path: /app/backup_logs/ESB0*
# move ESB01 logs to backup
find /logs/esb01/audit -name "*.tar.gz" -mtime +7 -exec mv {} app/backup_logs/ESB01/ \;
# Remove logs from backup path after 30 days
find /app/backup_logs/ESB01 -name "*.tar.gz" -mtime +30 -exec rm {} \;
Beachten Sie, dass wir exec
verwenden mit find
. Grundsätzlich exec
führt den bereitgestellten Befehl aus ( mv
und rm
in unserem Fall). {}
ist der Platzhalter, der die Ergebnisse des Befehls enthält. Zuletzt stellen wir das Trennzeichen ;
bereit . Da wir nicht wollen, dass die Shell das Semikolon interpretiert, maskieren wir es mit \
.
Das freigegebene Skript ist sehr nützlich beim Archivieren und Entfernen von Protokollen.
Abschluss
In diesem Artikel haben wir den find
untersucht Befehl im Detail und lernte, wie man Dateien nach Namen, Typ, Größe und Änderungszeit sucht.
Ich hoffe, Sie fanden dieses Tutorial hilfreich.
Teilen Sie Ihre Gedanken auf Twitter!
Du kannst meine anderen Posts hier lesen.
Ressourcen:Bannerbilder aus Office-Illustrationen von Storyset und Canva.