40 Beste Beispiele für den Befehl Find unter Linux

Der Befehl Linux find ist ein leistungsstarkes Tool, mit dem Systemadministratoren Dateien und Verzeichnisse anhand einer Vielzahl von Suchkriterien suchen und verwalten können. Es kann Verzeichnisse und Dateien nach ihrem Namen, ihrem Typ oder ihrer Erweiterung, Größe, Berechtigungen usw. finden.

Neben dem Auffinden von Dateien und Verzeichnissen können Sie durch die Kombination des Befehls find mit anderen Maßnahmen zu den Ergebnissen ergreifen., Durch Hinzufügen der Option -exec können Systemadministratoren externe Befehle ausführen und Aktionen wie Kopieren, Verschieben, Löschen oder Ändern der Berechtigungen der Dateien ausführen, die den angegebenen Kriterien wie Größe, Name usw. entsprechen.

In diesem Artikel erklären wir zunächst die grundlegenden Linux find-Befehle mit Beispielen. Dies zeigt Ihnen, wie Sie Dateien und Verzeichnisse finden. Wir zeigen Ihnen dann, wie Sie mit der Option -exec die Dateien oder Verzeichnisse basierend auf ihrer Größe, ihren Berechtigungen usw. bearbeiten können.,

Die allgemeine Syntax für den Befehl find lautet

find {path} {name -of-file or dir-to-search} {action-to-take}

Wobei

In diesem Tutorial erklären wir, wie Sie Dateien und Verzeichnisse finden, die den angegebenen Mustern entsprechen. Wir werden auch sehen, wie Aktionen für die Dateien oder Verzeichnisse ausgeführt werden, die der Befehl find sucht. Das Handbuch basiert auf Ubuntu, ist aber auf die meisten Linux-Distributionen und-Versionen anwendbar.

Dateien und Verzeichnisse suchen

Bestimmte Dateien nach Namen oder Erweiterung suchen

Um nach einer bestimmten Datei zu suchen, führen Sie den folgenden Befehl im Stammverzeichnis aus (/)., Der Befehl enthält den genauen Namen für die gesuchte Datei.

find . -name file22.txt

Ausgabe

./test/file22.txt./sales/file22.txt

Bitte beachten Sie, dass die Ergebnisse den Pfad enthalten. Dies ist wichtig, wenn Sie das Verzeichnis nicht kennen, in dem sich die Datei befindet, oder wenn sie sich an mehr als einem Ort befindet.

Sie können die Datei auch in einem anderen Verzeichnis suchen, während Sie sich noch am aktuellen Speicherort befinden. In diesem Fall müssen Sie den Pfad für das Verzeichnis angeben, in dem Sie suchen möchten.,

find ./test -name file22.txt

Suche nach bestimmten Dateien in einem anderen Verzeichnis

In unserem Fall werden wir nach allen suchen, die mit den Buchstaben beginnen Datei im Testverzeichnis.

find ./test -name file*

Ausgabe

./test/file22.txt./test/file30.doc./test/file1.txt./test/file5,doc

Suche nach Dateien nach Erweiterung

Um eine Datei in Linux mit einer bestimmten Erweiterung zu finden, fügen Sie sie dem Befehl hinzu.,

find . -name *.txt

Ausgabe

./test/subtest/subfil.txt./test/file22.txt./test/file1.txt./home1/files32.txt./home2/file22.txt./qa/tags.txt

Suchen Sie Dateien und Verzeichnisse nach Namen

Suchen Sie mit dem folgenden Befehl nach Dateien und Verzeichnissen, beginnend mit den Buchstaben qa. In unserem Computer haben wir dieqatree.txt undqa.txt Dateien sowie ein Verzeichnis mit dem Namenqa.,

Wenn wir den Befehl ausführen;

find ./ -name "qa*"

Es wird die folgende Ausgabe zurückgegeben

./test/qatree.pdf./test/qa.txt./home/qa

Der Befehl gibt sowohl die Dateien als auch die Verzeichnisse zurück, die den Suchkriterien entsprechen. Um nur Dateien oder Verzeichnisse zu finden, müssen Sie dies im Befehl angeben.

Nur Dateien oder Verzeichnisse suchen

Nur für Dateien verwenden Sie den Schalter type f.

Nur Dateien

find ./ -type f -name "qa*"

Ausgabe

./test/qatree.pdf./test/qa.txt

Nur Verzeichnisse

Fügen Sie die Option type d hinzu, um nur Verzeichnisse zu finden.,

find ./ -type d -name "qa*"

Output

./home/qa

Groß-und Kleinschreibung suchen Befehl

Alle Suchvorgänge mit -name switch sind groß-und Kleinschreibung empfindlich und geben keine Ergebnisse mit Großbuchstaben. Verwenden Sie zum Abrufen aller Fälle die Option -iname.

find ./ -iname "qa*"

Ausgabe

./test/qatree.pdf./test/qa.txt./test/QAtest.txt./home/qa

Suche nach einer Datei aus mehreren Verzeichnissen

Um die Dateien in verschiedenen Verzeichnissen zu finden, fügen Sie ihre Pfade in den Befehl ein., In unserem Fall überprüfen wir die Verzeichnisse test und numeric.

find ./test ./numeric -name file22.txt -type f

Ausgabe

./test/file22.txt/root/numeric/file22.txt

Suchen Sie mehrere Dateien mit unterschiedlichen Erweiterungen aus allen Verzeichnissen

Mit dem Befehl suchen können Sie mehrere Dateien suchen, die die verschiedenen Erweiterungen gemeinsam nutzen, z. B. *.doc, *.txt *.pdf usw. Dies kann separat erfolgen, jeweils eine Erweiterung oder mit nur einem Befehl, der alle gewünschten Erweiterungen enthält.,

find . -type f ( -name "*.txt" -o -name "*.pdf" -o -name "*.doc" )

Ausgabe

Dateien suchen, die bestimmten Text enthalten

Manchmal möchten Sie auf eine Datei zugreifen, die bestimmten Text enthält, können sich aber nicht an den Dateinamen oder Speicherort erinnern. Mit diesem Befehl können Sie alle Dateien finden, die Ihren Zieltext enthalten.

Um nach allen Dateien zu suchen, die das Wort Hyperkonvergenz enthalten, verwenden Sie;

find / -type f -exec grep -l -i "hyperconvergence" {} ;

Output

/root/numeric/hci/root/HCIP

Mit der Option-i kann der Befehl Fälle ignorieren und den Text finden, ob großgeschrieben oder nicht , dh Hyperkonvergenz, Hyperkonvergenz usw.,

Um nach Dateien in einem bestimmten Verzeichnis zu suchen, fügen Sie sie einfach dem Befehl

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

Output

./numeric/hci

Dateien und Verzeichnisse nach Größe suchen

Sie können alle Dateien oder Verzeichnisse finden, die kleiner, gleich oder größer als eine bestimmte Größe sind, innerhalb eines bestimmten Bereichs oder leer. Verwenden Sie je nach Art der gesuchten Dateien oder Verzeichnisse das entsprechende Format.,nd Dateien einer bestimmten Größe – gleich 30 MB

Zu suchen Finden Sie alle 30 MB Dateien

find / -size 30M

Finden Sie Dateien größer als eine angegebene Größe

find -size +2M

Ausgabe

. /Downloads/ubuntu18043.iso ./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

Finden Sie Dateien kleiner als 10 MB im aktuellen Verzeichnis

find . -type f -size -10M

Suchen Sie Dateien mit Größen zwischen 100-200MB

Wenn Sie nach Dateien in einem bestimmten Bereich suchen, z. B. zwischen 100 und 200 MB

find / -size +100M -size -200M

Suchen Sie nach Verzeichnissen, die größer als 20kb sind

find / -type d -size +20k

Suchen Sie leere Dateien und Verzeichnisse.,

Dateien

find ./ -type f -size 0

oder

find ./ -type f –empty

Verzeichnisse

find ./ -type d –empty

Dateien nach Alter oder Änderungszeit suchen

Dateien finden, die älter als n Tage sind

find /path/ -type f -name '*.txt' -mtime +8

Die -mtime +8 sucht nach txt Dateien, die älter als 8 Tage sind.,

Nach Änderungsdatum

Dies sucht nach Dateien, die innerhalb der letzten 17 Stunden geändert wurden

find . -mtime -17 -type f 

Sucht nach Verzeichnissen, die innerhalb der letzten 10 Tage geändert wurden

find . -mtime -10 -type d 

Suchen Sie Dateien basierend auf Zugriff oder Änderung

Suchen Sie Dateien basierend auf dem Datum oder der Uhrzeit des Zugriffs. Auf diese Weise können Sie Dateien anzeigen, auf die innerhalb eines bestimmten Zeitraums zugegriffen wurde oder nicht.

Zum Anzeigen von Dateien, auf die in den letzten 10 Tagen nicht zugegriffen wurde, im Home-Verzeichnis.,

find /home -atime +10

– Dateien zugegriffen genau 10 Tagen

find /home -atime 10

Zugegriffen, die innerhalb der letzten 10 Tage

find /home -atime -10

die Dateien, die innerhalb der letzten n Tage

Sie können auch suchen Sie die Dateien in das /home Verzeichnis geändert, in den letzten 10 Tagen der Verwendung des Befehls;

find /home -mtime -10 

die Dateien in einem bestimmten Zeitraum.

Zum Beispiel alle Dateien, die vor 6 bis 15 Tagen im Home-Verzeichnis geändert wurden.,

find /home -type f -mtime +6 -mtime -15

Dateien und Verzeichnisse, auf die in den letzten 10 Minuten zugegriffen wurde

Um die Dateien zu finden, auf die in den letzten 10 Minuten zugegriffen wurde, verwenden Sie die Option-amin.

find . -amin -10 -type f

Ausgabe

./.bash_history./.profileroot@ubuntu1804:~#

Verzeichnisse, auf die innerhalb der letzten 10 Minuten zugegriffen wurde

find . -amin -10 -type d

Finden Sie Dateien, die bestimmten Berechtigungen entsprechen

Syntax

$ find -perm mode

Wobei mode die Berechtigung ist, die entweder numerisch ist, wie 644, 655, 700, 777 usw. oder Buchstaben wie u=x, a=r+x, usw.,

Sie können den Modus auf drei verschiedene Arten festlegen.

  1. Ohne Präfix, wenn Sie Dateien mit den genauen angegebenen Berechtigungen finden möchten.
  2. Mit“- “ für Dateien mit mindestens der angegebenen Berechtigung. Dies gibt Dateien mit den angegebenen sowie zusätzlichen höheren Berechtigungen zurück.
  3. Die Verwendung von „/ “ erfordert die Angabe des Eigentümers oder der Gruppe mit der Berechtigung für die Datei.,

Suchen Sie Dateien mit der Berechtigung 777

find -perm 777

Ausgabe

./file1

Suchen Sie Dateien mit mindestens 766
find-perm -766

Ausgabe

./file2./file1

Der Befehl sucht nach allen Dateien, in denen

  • Der Dateieigentümer Lese – /Schreib – /Ausführungsberechtigungen besitzt.
  • Gruppe hat Lese – / Schreibberechtigungen
  • Andere haben Lese – / Schreibberechtigung

Als solche gibt es zwei Dateien zurück, die dieses Kriterium erfüllen – Datei1 und Datei2., Die Dateien müssen nicht die genauen 766 Berechtigungen haben und können zusätzliche haben, müssen aber mindestens die angegebenen haben.

Dateien finden, die vom Eigentümer beschreibbar sind

Wir werden jetzt die „/“ verwenden, um nach Dateien zu suchen, die entweder von ihrem Besitzer oder ihrer Gruppe oder anderen beschreibbar sind.

find -perm /222../file2./file3./file1

Das obige sucht nach Dateien, die entweder von ihrem Besitzer oder ihrer Gruppe beschreibbar sind.
Dies gibt die Dateien, die geschrieben werden, indem Sie entweder, aber nicht unbedingt beide. Verwenden Sie das Präfix–, um Dateien anzuzeigen, für die beide beschreibbare Berechtigungen haben.,

./file2./file1

Finden Sie Dateien im Besitz eines Benutzers

Finden Sie alle Dateien im Besitz von Jack

find /home -user jack

Ausgabe

/home/jack/home/jack/examples.desktop/home/jack/.gnupg/home/jack/.gnupg/private-keys-v1.d/home/jack/ans.cgi

Suchen Sie bestimmte Dateien im Besitz eines Benutzers

Finden Sie alle Textdateien im Besitz von Jack

find /home -user jack -iname "*.txt"

Ausgabe

/home/jack/docs/file32.txt

Suchen und Auflisten von Dateien und Verzeichnissen zusammen mit ihren Berechtigungen

find -name "*.conf" | ls -l

Ausgabe

Suchen und handeln Sie nach den Ergebnissen

In diesem Abschnitt werden wir untersuchen, wie Sie auf die Dateien reagieren können, die dem im Befehl suchen angegebenen Muster entsprechen.,

Dateien suchen und Berechtigungen ändern

Berechtigungen bestimmter Dateitypen suchen und ändern. In unserem Fall arbeiten wir mit PHP-Dateien mit unterschiedlichen Berechtigungen wie unten gezeigt.,

Wir suchen nun nach allen PHP-Dateien (oben) und ersetzen ihre Berechtigungen durch 755

find ver -name "*.php" -type f -exec chmod 755 {} ;

Der Befehl sucht nach PHP-Dateien im Verzeichnis ver und setzt dann ihre Berechtigung auf 755 (rwxr-xr-x)

Ergebnisse

Datei-und Verzeichnisberechtigungen suchen und ändern

Dateien mit 644 Berechtigungen suchen und in 655 Berechtigungen ändern

find . -type f -perm 644 -exec chmod 655 {} ;

Sie können auch nach Verzeichnissen mit 644 Berechtigungen suchen und diese durch 755 ersetzen.,

find . -type d -perm 644

Ausgabe

./docs 

Der Ordner docs hat 644 Berechtigungen

drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

Um ihn auf 755 zu setzen, führen wir

find . -type d -perm 644 -exec chmod 755 {} ;

Jetzt können wir noch einmal überprüfen, was genau 755

find . -type d -perm 755

Output
.
./docs

Von oben können wir sehen, dass die Verzeichnisse root und docs die Berechtigungen 755 haben.,

Ls –la Befehl gibt die folgenden Details

drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

Suchen und Kopieren von Dateien oder Verzeichnissen

Suchen und kopieren Sie eine bestimmte Datei in ein Verzeichnis

Der folgende Befehl findet diefile22.txt Datei und kopieren Sie sie in die~/tmp/images Verzeichnis.,

find -iname file22.txt -exec cp {} ~/tmp/images ;

Suchen und kopieren Sie einen Dateityp in ein Verzeichnis

Um Dateien wie Bilder mit jpg – Erweiterung im aktuellen Verzeichnis zu finden und sie an einen anderen Speicherort wie einen Bilderordner zu kopieren, verwenden Sie;

find -iname '*.jpg' -exec cp {} ~/tmp/images ;

Dies findet und kopiert alle JPG-Dateien in die ~/tmp/images Ordner.

Suchen und kopieren Sie eine Datei in viele Verzeichnisse

Suchen und kopieren Sie eine einzelne Datei in mehrere Verzeichnisse.,

find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

Dadurch wird die Datei hci-Datei gefunden und in die drei Verzeichnisse /tmp/dir1/ /tmp/dir2/ und $HOME/3/

Dateien suchen und in ein anderes Verzeichnis verschieben

Um eine bekannte Datei von einem Verzeichnis in ein anderes zu verschieben., Um die universal.php – Datei zu verschieben;

find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

Suchen und Verschieben Sie Dateien mit einer bestimmten Erweiterung in einen anderen Ordner

find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

Suchen Sie bestimmte Dateien und verschieben Sie Sie sie in einen bestimmten anderen Ordner

find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

Der Befehl sucht nach allen Dateien mit Namen beginnend mit uni und mit einer beliebigen Erweiterung. Es verschiebt sie dann in das Verzeichnis /unifiles/

Suchen und Verschieben von Dateien basierend auf dem Alter

Suchen und Verschieben von Dateien, die älter als angegeben sind Tage an einen anderen Ort wie das Archiv.,

find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

Dadurch werden PDF-Dateien gesucht, die älter als 20 Tage sind, und in das backup1-Verzeichnis verschoben.,dateien und Verzeichnisse

Die Syntax zum Suchen und Entfernen von Dateien oder Verzeichnissen im aktuellen Verzeichnis lautet

find . -type f -name "file to delete" -exec rm -f {} ; zum Löschen von Dateien oder

find . -type d -name "dir-to-delete" -exec rm -rf {} ; zum Löschen von Verzeichnissen nur

Nur bestimmte Dateien suchen und löschen

Zum Suchen und Löschen von Dateien ab til, use;

find . -type f -name "til*" -exec rm {} ; 

Zum Suchen und Löschen von Verzeichnissen, die mit til beginnen

find . -type d -name "til*" -exec rm {} ;

Entfernen Sie sowohl Dateien als auch Verzeichnisse

find . -name "til*" -exec rm -rf {} ; 

Dadurch werden sowohl Dateien als auch Verzeichnisse entfernt, die mit den Buchstaben til beginnen.,

Delete by extension

So finden und löschen Sie alle txt Dateien im aktuellen Verzeichnis. Ersetzen Sie die txt durch eine andere Erweiterung wie bak, pdf oder eine andere, die Sie entfernen möchten.

find . -type f -name "*.txt" -exec rm -f {} ;

Falls das System Sie vor dem Löschen jeder Datei zur Bestätigung auffordern soll, fügen Sie die Option-i wie folgt hinzu.,

find . -type f -name "*.txt" -exec rm -i {} ;

Ausgabe

Standardmäßig entfernt die -rm die Verzeichnisse nicht und Sie müssen die Option –r verwenden, um eine rekursive Entfernung sicherzustellen. Dies gewährleistet das Löschen leerer Verzeichnisse und solcher, die Dateien enthalten. Die Option -f erzwingt das Entfernen und wird sowohl für Dateien als auch für Verzeichnisse verwendet.

Suchen und Löschen von Dateien, die älter als n Tage sind

Suchen und Löschen von Sicherungsdateien, die älter als 20 Tage sind, aus dem aktuellen Verzeichnis.,

find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

Dadurch werden alle .bak Dateien gelöscht, die älter als 20 Tage sind.

Nur Verzeichnisse suchen und löschen

Zum Löschen eines Verzeichnisses mit dem Namen

find . -type d -name dir22 -exec rm -rf {} ;

Stellen Sie sicher, dass Sie mit dem Fall des Verzeichnisnamens übereinstimmen, oder verwenden Sie die Option -iname.

find . -type d -iname Dir22 -exec rm -rf {} ;

Entfernt sowohl Dir22 als auch

Um vor dem Löschen zu bestätigen, verwenden Sie die Option-i.

find . -type d -iname Dir22 -exec rm -rf -i {} ;

Ausgabe
rm: Verzeichnis entfernen ‘./Dir22′?, n
rm: Verzeichnis entfernen ‘./dir22′? y

In unserem Fall haben wir n für das Verzeichnis Dir22 eingegeben, das nicht gelöscht wird, und y für die , die jetzt entfernt wird.

Leere Dateien suchen und entfernen

Mit einem der folgenden Befehle können Sie leere Dateien suchen und automatisch löschen.

find ./ -type f -size 0 -exec rm -f {} ;

oder
suchen ./ – Typ f-Größe 0 / xargs rm-f
oder
finden .,/ – Typ f-Größe 0-Löschen

Leere Verzeichnisse suchen und entfernen

Um leere Verzeichnisse zu entfernen, verwenden wir die Option d.

find ./ -type d -empty -exec rmdir {} ;

Eine weitere Alternative ist die Verwendung von delete anstelle von remove.

find ./ -type d -empty -delete

Bitte beachten Sie, dass das Löschen von System-oder kritischen Dateien von Ihrem Computer das Betriebssystem oder Anwendungen beschädigen oder zum Verlust Ihrer wichtigen Daten führen kann.

Um versehentliches Löschen zu vermeiden, empfiehlt es sich, ein Nicht-Root-Benutzerkonto zu verwenden., Stellen Sie außerdem sicher, dass Sie die richtigen Dateien löschen, die nicht nützlich sind, und dass Sie für alle Fälle eine Sicherungskopie aller Ihrer Datendateien haben.

What ‚ s next?

Probieren Sie die obigen Linux-Suchbefehle in Ihrer Labor-oder Nichtproduktionsumgebung aus. Überprüfen Sie, ob Sie einige verwenden können, um die Dateisystembereinigung mit Crontab zu automatisieren. Und um Linux zu beherrschen, schauen Sie sich diesen Online-Kurs an.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Zur Werkzeugleiste springen