Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

40 Beste Beispiele für den Befehl Suchen unter Linux

wget Befehlsbeispiele
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Das Linux find command 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 anhand ihres Namens, ihres Typs oder ihrer Erweiterung, Größe, Berechtigungen usw. finden.

Neben dem Auffinden von Dateien und Verzeichnissen kombinieren Sie die find Befehl mit anderen ermöglicht es Ihnen, auf die Ergebnisse zu reagieren. Hinzufügen der -exec Mit dieser Option können Systemadministratoren externe Befehle ausführen und Aktionen wie Kopieren, Verschieben, Löschen oder Ändern von Berechtigungen für Dateien ausführen, die den angegebenen Kriterien wie Größe, Name usw. entsprechen.

In diesem Artikel werden zunächst die grundlegenden Linux-Suchbefehle anhand von Beispielen erläutert. Dies wird es Ihnen zeigen wie man Dateien findet und Verzeichnisse. Wir zeigen Ihnen dann, wie Sie das verwenden -exec Option, auf die Dateien oder Verzeichnisse basierend auf ihrer Größe, Berechtigungen usw. zu reagieren.

Die allgemeine Syntax für den Befehl find lautet

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

Woher,

  • path Gibt das Verzeichnis an.
  • name-of file or dir-to-search : Name der zu suchenden Datei oder des zu suchenden Verzeichnisses
  • action-to-take: wie Kopieren, Löschen, Verschieben usw.

In diesem Tutorial wird erklärt, wie Dateien und Verzeichnisse gefunden werden, die den angegebenen Mustern entsprechen. Wir werden auch sehen, wie Aktionen für die Dateien oder Verzeichnisse ausgeführt werden, die der Befehl find findet. Das Handbuch basiert auf Ubuntu, gilt jedoch für die meisten Linux-Distributionen und -Versionen.

Suchen Sie nach Dateien und Verzeichnissen

Find specific files by name or extension

Führen Sie den folgenden Befehl im Stammverzeichnis (/) aus, um nach einer bestimmten Datei zu suchen. Der Befehl enthält den genauen Namen der gesuchten Datei.

find . -name file22.txt

Output

./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 mehreren Stellen 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

Looking for specific files in another directory

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

find ./test -name file*

Output

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

Search for files by extension

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

find . -name *.txt

Output

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

Find files and directories by name

Verwenden Sie den folgenden Befehl, um nach Dateien und Verzeichnissen zu suchen, die mit den Buchstaben beginnen qa. In unserem Computer haben wir die qatree.txt funktioniert qa.txt Dateien sowie ein Verzeichnis mit dem Namen qa.

Wenn wir den Befehl ausführen;

find ./ -name "qa*"

Es gibt die folgende Ausgabe zurück

./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.

Find files or directories only

Verwenden Sie nur für Dateien die type f Schalter.

Nur Dateien

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

Output

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

Nur Verzeichnisse

Fügen Sie type d Option, nur Verzeichnisse zu suchen.

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

Output

./home/qa

Case insensitive find command

Alle Suchanfragen mit -name Schalter unterscheiden zwischen Groß- und Kleinschreibung und geben keine Ergebnisse mit Großbuchstaben. Um alle Fälle zu erhalten, verwenden Sie die -iname .

find ./ -iname "qa*"

Output

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

Search for a file from multiple directories

Um die Dateien in verschiedenen Verzeichnissen zu finden, fügen Sie ihre Pfade in den Befehl ein. In unserem Fall werden wir in der einchecken test funktioniert numeric Verzeichnisse.

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

Output

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

Find multiple files with different extensions from all directories

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

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

Ausgabe

./test/subtest/subfil.txt
./test/qatree.pdf
./test/file22.txt
./test/qa.txt
./test/file30.doc
./books/acro.pdf
./data1/FILE22.txt
./docs/files32.txt

Find files containing certain text

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

Verwenden Sie Folgendes, um nach allen Dateien zu suchen, die das Wort Hyperkonvergenz enthalten.

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

Output

/root/numeric/hci
/root/HCIP

Das –i Mit dieser Option kann der Befehl Fälle ignorieren und findet den Text, 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 hinzu

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

Output

./numeric/hci

Erfahren Sie mehr Beispiele für grep-Befehle.

Suchen Sie nach Dateien und Verzeichnissen basierend auf der Größe

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

Größenoptionen umfassen;

c - Bytes

k - Kilobyte

M - Megabyte

G - Gigabytes

Find files of a certain size – equal to 30MB

Zur Suche finden Sie alle 30MB-Dateien

find / -size 30M

Find files larger than a specified size

find -size +2M

Output

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

Find files less than 10MB in the current directory

find . -type f -size -10M

Find files with sizes between 100-200MB

Bei der Suche nach Dateien in einem bestimmten Bereich, z. B. zwischen 100 und 200 MB

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

Look for directories larger than 20kb

find / -type d -size +20k

Find empty files and directories.

Dateien

find ./ -type f -size 0

or

find ./ -type f –empty

Verzeichnisse

find ./ -type d –empty

Find files by age or modification time

Suchen Sie nach Dateien, die älter als n Tage sind

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

Das -mtime +8 wird suchen txt Dateien, die älter als 8 Tage sind.

By modification date

Dadurch wird nach Dateien gesucht, die innerhalb der letzten 17 Stunden geändert wurden

find . -mtime -17 -type f 

Sucht nach Verzeichnissen, die in den letzten 10 Tagen geändert wurden

find . -mtime -10 -type d 

Find files based on access or modification

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

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

find /home -atime +10

Dateien, auf die vor genau 10 Tagen zugegriffen wurde

find /home -atime 10

Zugriff innerhalb der letzten 10 Tage

find /home -atime -10

Find files modified within the last n days

Sie können auch nach den Dateien in der suchen /home Verzeichnis, das innerhalb der letzten 10 Tage mit dem Befehl geändert wurde;

find /home -mtime -10 

Find files modified within a specific period.

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

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

Files and directories accessed within the last 10 minutes

Verwenden Sie die Option -amin, um die Dateien zu finden, auf die innerhalb der letzten 10 Minuten zugegriffen wurde.

find . -amin -10 -type f

Output

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

Verzeichnisse, auf die innerhalb der letzten 10 Minuten zugegriffen wurde

find . -amin -10 -type d

Suchen Sie nach Dateien, die bestimmten Berechtigungen entsprechen

Syntax

$ find -perm mode

Wobei Modus die Berechtigung ist, die entweder numerisch ist, wie z 644, 655, 700, 777usw. 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 genau angegebenen Berechtigungen suchen 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. Verwenden von “/”Erfordert die Angabe des Eigentümers oder der Gruppe mit der Berechtigung für die Datei.

Find files with permission 777

find -perm 777

Output

./file1

Finden Sie Dateien mit mindestens 766
finde -perm -766

Output

./file2
./file1

Der Befehl sucht nach allen Dateien, in denen die

  • Der Dateibesitzer verfügt über Lese- / Schreib- / Ausführungsberechtigungen.
  • Die Gruppe verfügt über Lese- / Schreibberechtigungen
  • Andere haben Lese- / Schreibrechte

Daher werden zwei Dateien zurückgegeben, die dieses Kriterium erfüllen - Datei1 und Datei2. Die Dateien müssen nicht genau sein 766 Berechtigungen und können zusätzliche so lange haben, müssen aber mindestens die angegebenen haben.

Find files writable by the owner

Wir werden jetzt die “/”, Um nach Dateien zu suchen, die entweder von ihrem Eigentümer, ihrer Gruppe oder anderen beschreibbar sind.

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

Das Obige sucht nach Dateien, die entweder von ihrem Eigentümer oder ihrer Gruppe beschreibbar sind.
Dies gibt Dateien zurück, die von einem, aber nicht unbedingt von beiden beschreibbar sind. Verwenden Sie das Präfix -, um Dateien anzuzeigen, für die beide beschreibbare Berechtigungen haben.

find -perm -220

Output

./file2
./file1

Find files owned by a user

Finde alle Dateien von Jack

find /home -user jack

Output

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

Find specific files owned by a user

Finde alle Textdateien von Jack

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

Output

/home/jack/docs/file32.txt

Find and list files and directories together with their permissions

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

Output

total 120
drwxr-xr-x 2 root root 4096 Dec 31 13:19 backup2
drwxr-xr-x 2 root root 4096 Jan 4 11:57 Desktop
drwxr-xr-x 2 root root 4096 Dec 31 11:50 Documents
drwxr-xr-x 2 root root 4096 Dec 31 12:27 Downloads
-rw-r--r-- 1 root root 0 Jan 4 12:02 file22.doc
drwxr-xr-x 2 root root 4096 Jan 4 12:14 file23
-rw-r--r-- 1 root root 0 Jan 4 12:23 file23.txt

Finden und handeln Sie nach den Ergebnissen

In diesem Abschnitt sehen wir uns an, wie Sie auf die Dateien reagieren können, die dem im Befehl find angegebenen Muster entsprechen.

Find files and change permissions

Suchen und Ändern von Berechtigungen für bestimmte Dateitypen. In unserem Fall arbeiten wir mit PHP-Dateien mit unterschiedlichen Berechtigungen, wie unten gezeigt.

jack@ubuntu1804:~/ver$ ls -la

total 8
drwxrwxr-x 2 jack jack 4096 Jan 3 14:11 .
drwxr-xr-x 8 jack jack 4096 Jan 3 14:05 ..
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 ans.php
-rw-rw-r-- 1 jack jack 0 Jan 3 14:11 base.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 query.php
-rw-rw-r-- 1 jack jack 0 Jan 3 14:11 qust.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 text.php
-rw-rw-r-- 1 jack jack 0 Jan 3 14:11 vary.php

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

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

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

Die Ergebnisse

jack@ubuntu1804:~/ver$ ls -la
total 8
drwxrwxr-x 2 jack jack 4096 Jan 3 14:11 .
drwxr-xr-x 8 jack jack 4096 Jan 3 14:05 ..
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 ans.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:11 base.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 query.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:11 qust.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 text.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:11 vary.php

Find and change file and directory permissions

Suchen Sie nach Dateien mit 644 Berechtigungen und ändern Sie sie in 655 Berechtigungen

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

Output

./docs   

Der Ordner docs verfügt über 644 Berechtigungen

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

Um es auf einzustellen 755, wir rennen

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 sehen wir, dass die Verzeichnisse root und docs über die Berechtigungen 755 verfügen.

Ls –la Befehl gibt die folgenden Details

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

Find and copy files or directories

Suchen und kopieren Sie eine bestimmte Datei in ein Verzeichnis

Der folgende Befehl findet die file22.txt Datei und kopieren Sie es in die ~/tmp/images Verzeichnis.

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

Suchen und kopieren Sie einen Dateityp in ein Verzeichnis

So finden Sie Dateien wie Bilder mit jpg Erweiterung im aktuellen Verzeichnis und kopieren Sie sie an einen anderen Speicherort wie einen Bilderordner.

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

Dadurch werden alle JPG-Dateien gefunden und in die kopiert ~/tmp/images Ordner.

Find and copy one file to many directories

Suchen und kopieren Sie ein einzelnes in mehrere Verzeichnisse.

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

Dadurch wird die Datei gefunden hci Datei und kopieren Sie es in die drei Verzeichnisse von /tmp/dir1/ /tmp/dir2/ funktioniert $HOME/3/

Find and move files to a different directory

So verschieben Sie eine bekannte Datei von einem Verzeichnis in ein anderes. Um das zu bewegen universal.php Datei;

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/ ;

Find certain files and move to a specific different folder

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

Der Befehl sucht nach allen Dateien, deren Namen mit beginnen uni und mit einer Erweiterung. Anschließend werden sie in das Verzeichnis verschoben /unifiles/

Find and move files based on age

Suchen und verschieben Sie Dateien, die älter als die angegebenen Tage sind, an einen anderen Speicherort wie das Archiv.

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

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

Suchen und Löschen von Dateien und Verzeichnissen

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

find . -type f -name "file to delete" -exec rm -f {} ; nur Dateien löschen oder

find . -type d -name "dir-to-delete" -exec rm -rf {} ; nur Verzeichnisse löschen

Find and delete specific files only

Verwenden Sie zum Suchen und Löschen von Dateien, die mit til beginnen.

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

Verzeichnisse suchen und löschen, beginnend mit bis

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

Remove both files and directories

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

Dadurch werden sowohl Dateien als auch Verzeichnisse entfernt, beginnend mit den Buchstaben bis.

Delete by extension

Im Folgenden erfahren Sie, wie Sie alle suchen und löschen können txt Dateien im aktuellen Verzeichnis. Ersetze das txt mit einer anderen Erweiterung wie bak, pdf oder andere, die Sie entfernen möchten.

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

Wenn 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 {} ;

Output

rm: remove regular empty file './File22.txt'? y
rm: remove regular empty file './file22.txt'? y
rm: remove regular empty file './file23.txt'?

Standardmäßig ist die -rm entfernt die Verzeichnisse nicht und Sie müssen die verwenden –r Option, um eine rekursive Entfernung sicherzustellen. Dies stellt sicher, dass leere Verzeichnisse und solche, die Dateien enthalten, gelöscht werden. Das -f Die Option erzwingt das Entfernen und wird sowohl für die Dateien als auch für die Verzeichnisse verwendet.

Find and delete files older than n days

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

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

Dadurch werden alle gelöscht .bak-Dateien älter als 20 Tage.

Find and delete directories only

So löschen Sie ein Verzeichnis namens dir22

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

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

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

Entfernt beide Dir22 funktioniert dir22

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

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

Output
rm: Verzeichnis './Dir22' entfernen? n
rm: Verzeichnis './dir22' entfernen? y

In unserem Fall haben wir getippt n für Verzeichnis Dir22 die nicht gelöscht werden und y für die dir22 welches nun entfernt wird.

Find and remove empty files

Mit den folgenden Befehlen können Sie leere Dateien suchen und automatisch löschen.

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

or
find ./ -type f -size 0 | xargs rm-f
or
find ./ -type f -size 0 –löschen

Find and remove empty directories

Um leere Verzeichnisse zu entfernen, verwenden wir die d .

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

Eine andere Alternative ist die Verwendung von Löschen anstelle von Entfernen.

find ./ -type d -empty -delete

Bitte beachten Sie, dass das Löschen von System- oder kritischen Dateien von Ihrem Computer das Betriebssystem oder die 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.

Was kommt als nächstes?

Probieren Sie die oben genannten Linux-Suchbefehle in Ihrem Labor oder in der NON PRODUCTION-Umgebung aus. Überprüfen Sie, ob Sie einige verwenden können, um die Dateisystembereinigung mit zu automatisieren crontab. Und um Linux zu beherrschen, sehen Sie sich das an Online Kurs.

Danke an unsere Sponsoren
Weitere großartige Lektüre zu Linux
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder