In Linux Letztes Updateated:
Teilen:
Cloudways bietet verwaltetes Cloud-Hosting für Unternehmen jeder Größe zum Hosten einer Website oder komplexer Webanwendungen.

In seiner Grundform ist das Finden einfach. Gleichzeitig kann die Anzahl der verfügbaren Optionen, Tests und Aktionen komplex sein.

Der Find-Befehl ist ein unglaublich leistungsfähiges Werkzeug und Putting effort Es kann lohnend sein, es zu lernen. Es hilft Ihnen bei der effizienten Ausführung verschiedener Systemverwaltungsaufgaben, wie z. B. Speicherplatzverwaltung, rekursive Dateioperationen und Backups.

Der Linux-Befehl find sucht nach Dateien und Ordnern basierend auf den von Ihnen definierten Kriterien und ermöglicht es Ihnen, eine Aktion für die Suchergebnisse auszuführen. Die Syntax von find lautet wie folgt:

$ find directory-to-search criteria action

woher

  • Directory-to-Search ist der Ausgangspunkt, von dem aus find nach Dateien sucht. Die Suche umfasst alle Unterverzeichnisse in diesem Verzeichnis.
  • Kriterien (Test) gibt an, nach welchen Dateien gesucht werden soll
  • Die Aktion gibt an, was mit jeder gefundenen Datei zu tun ist, die den Kriterien entspricht.

Tests

Suche mit Name

Hier ist ein einfaches Beispiel. Der folgende Befehl sucht nach der Datei a.txt im aktuellen Verzeichnis:

$ find . -name "a.txt"
./a.txt

Wo

  • . verweist auf das aktuelle Verzeichnis
  • -name test gibt die Kriterien an, die abgeglichen werden sollen

Diese Suche mit -name test unterscheidet zwischen Groß- und Kleinschreibung und ignoriert die Datei A.txt. Um sicherzustellen, dass bei Ihrer Suche die Groß- und Kleinschreibung nicht berücksichtigt wird -iname Test:

$ find . -iname "a.txt"
./a.txt
./A.txt

Nach allen suchen .jpg Verwenden Sie für Bilddateien im aktuellen Verzeichnis das Platzhaltermuster *.jpg:

$ find . -name "*.jpg"
./genxfacebook2.jpg
./genxfacebook1.jpg
./Moodle2.jpg
./moodle.jpg
./moodle/moodle1.jpg
./genxfacebook.jpg

Sie können den Verzeichnisnamen verwenden, in dem gesucht werden soll. So suchen Sie beispielsweise nach allen JPG-Bildern im Verzeichnis / home:

$ find /home -name "*.jpg"
find: `/home/ubuntu/.ssh': Permission denied
/home/vagrant/Moodle2.jpg
/home/vagrant/moodle.jpg
/home/me/hello.jpg
find: `/home/me/testfiles': Permission denied
find: `/home/me/data': Permission denied
/home/me/water.jpg
find: `/home/me/.cache': Permission denied

Wenn zu viele Fehler mit verweigerten Berechtigungen angezeigt werden, können Sie am Ende des Befehls 2> / dev / null hinzufügen. Dies leitet Fehlermeldungen an das Gerät / dev / null weiter und liefert eine sauberere Ausgabe:

find /home -name "*.jpg" 2>/dev/null
/home/vagrant/Moodle2.jpg
/home/vagrant/moodle.jpg
/home/me/hello.jpg
/home/me/water.jpg

Suche nach Dateityp

Verwendung der -type Test können Sie Dateien nach Typ suchen. Dateitypen können sein:

f plain files
d directories
l symbolic links
b block devices
c character devices
p named pipes
s sockets

Wenn Sie beispielsweise den Testtyp d verwenden, werden nur Verzeichnisse aufgelistet:

$ find . -type d
.
./.ssh
./.cache
./moodle

Suche nach Dateigröße

Möglicherweise müssen Sie nach großen Dateien suchen und diese löschen. Im folgenden Beispiel folgt auf die Testgröße die Zeichenfolge + 1G. Dies würde nach allen Dateien suchen, die größer als 1 GB sind.

$ find . -size +1G 
./Microsoft_Office_16.29.19090802_Installer.pkg
./android-studio-ide-183.5692245-mac.dmg

Das +-Zeichen bedeutet, dass Dateien gesucht werden, die größer als die folgende Zahl sind. Zur Angabe kann ein Minuszeichen (-) verwendet werdenate kleiner als. Wenn Sie kein Zeichen verwenden, bedeutet dies, dass die Größe genau übereinstimmt.

Auf die Nummer folgt die Dateigrößeneinheit. Einheiten können sein:

Charakter Feines Gerät
b 521 Tschüss Blöcke
c Bytes
k Kilobyte
M Megabytes
G Gigabyte

Durchsuchen Sie leere Verzeichnisse und Dateien

Verwenden Sie die -empty Testen Sie, um leere Verzeichnisse und Dateien wie folgt zu finden:

$ find . -empty
./.cloud-locale-test.skip
./datafiles
./b.txt
...
./.cache/motd.legal-displayed

Suche nach Dateimodifikationszeit

Sie können nach allen Dateien und Verzeichnissen basierend auf cre suchenate oder Änderungszeit mit -cmin Prüfung. Um nach allen Dateien zu suchen, die in den letzten 60 Minuten (weniger als 60) geändert wurden, verwenden Sie -60 so was:

$ find . -cmin -60
.
./a.txt
./datafiles

Verwenden Sie für Dateien, die vor den letzten 60 Minuten geändert wurden +60.

Suche nach Zugriffszeit

Sie können nach Dateien nach der letzten Zugriffszeit suchen, mit -atime Prüfung. Der folgende Befehl sucht beispielsweise nach Dateien, auf die in den letzten 180 Tagen nicht zugegriffen wurde:

$ find . -atime +180

Diese können auf ein Sicherungsgerät verschoben werden, wenn der Speicherplatz knapp wird.

Suche nach Benutzername

Mit -user Benutzername Test können Sie alle Dateien und Verzeichnisse eines Benutzers durchsuchen. Der folgende Befehl sucht beispielsweise nach allen Dateien und Verzeichnissen, die dem Benutzer ubuntu im Verzeichnis / home gehören:

$ find /home -user ubuntu 2>/dev/null
/home/ubuntu
/home/ubuntu/.bash_logout
/home/ubuntu/.bashrc
/home/ubuntu/.ssh
/home/ubuntu/.profile

Suche nach Modus

Möchten Sie nach Dateien suchen, die auf einen bestimmten Modus eingestellt sind, dh über bestimmte Berechtigungen verfügen? Verwenden Sie -perm test. Im folgenden Beispiel wird nach Dateien mit Berechtigungen gesucht, die auf 777 festgelegt sind:

$ find /home -perm 777

Betreiber

Mit den folgenden drei logischen Operatoren können Sie mehrere Tests in einem einzigen Suchbefehl kombinieren:

  • -und
  • -Oder
  • -nicht

Der folgende Befehl sucht beispielsweise nach Dateien, die größer als 100 MB sind und dem Benutzer me gehören:

$ find /home  -user me  -and  -size +100M  2>/dev/null
/home/me/kali-linux-2020.3-installer-netinst-i386.iso

Der folgende Befehl sucht nach Dateien, die größer als 100 MB sind und dem Benutzer me oder dem Benutzer vagrant gehören:

$ find /home \( -user vagrant -or -user me \)  -and  -size +100M  2>/dev/null
/home/vagrant/LibreOffice_7.0.1_Linux_x86-64_deb.tar.gz
/home/me/kali-linux-2020.3-installer-netinst-i386.iso

Sie müssen einen Backslash vor die Klammern setzen, um p zu erhaltenrevEntbinden Sie die Shell davon, sie zu interpretieren.

Aktionen

find gibt Ihnen die Suchergebnisse und dann die Möglichkeit, eine Aktion für sie auszuführen. Hier sind einige vordefinierte Aktionen:

Action Beschreibung
-löschen Löscht Dateien, die den Suchkriterien entsprechen
-ls Zeigt eine detaillierte ls-Ausgabe mit Dateigrößen und Inode-Anzahl
-drucken Zeigt den vollständigen Pfadnamen der übereinstimmenden Dateien an. Dies ist die Standardaktion, wenn keine andere Aktion angegeben ist
-Exec Führt den folgenden Befehl in jeder Zeile der Suchausgabe aus

Wenn Sie also nach allen leeren Dateien suchen und diese löschen möchten, gehen Sie wie folgt vor:

$ find . -empty -delete

Achtung: Bevor Sie die Löschaktion verwenden, können Sie den Befehl immer einmal sicher ausführen -print Aktion und bestätigen Sie die Ergebnisse.

Der -exec Aktion ist etwas Besonderes. Damit können Sie einen Befehl Ihrer Wahl in den Suchergebnissen ausführen. Es ist so:

-exec <em>command</em> {} \;

Hier

  • Befehl ist der Befehl, den Sie für die Suchergebnisse ausführen möchten, z. B. rm, mv oder cp.
  • {} repräsentiert die Suchergebnisse.
  • Der Befehl endet mit einem Semikolon, das mit einem Backslash versehen ist.

Der Befehl zum Suchen und Löschen aller leeren Dateien kann also folgendermaßen geschrieben werden:

$ find . -empty -exec rm {} \;

Hier ist ein weiteres Beispiel mit -exec Aktion. Der folgende Befehl kopiert alle .png Bilddateien in das Verzeichnis backup / images:

$ find . -name "*.png" -exec cp {} /backups/images \;

Schlussfolgerung

Sie können die Verwendung Linux-Suchbefehl um nach Dateien anhand des Namens und des letzten Zugriffs zu suchen. date, letzte Änderung date, Benutzername (Eigentümername), Gruppenname, Größe, Berechtigungen und verschiedene andere Kriterien. Mit diesen Suchergebnissen können Sie Aktionen wie Löschen, Kopieren oder Verschieben an einen anderen Ort durchführen.

Sobald Sie den Befehl find beherrschen, kann er eine große Hilfe sein und vereinfachen Systemadministration Aufgaben für Sie. Und der Schlüssel, um es zu meistern, ist es zu üben und es zu benutzen!

Teilen:
  • Vijay Khurana
    Autor
    Vijay arbeitet seit 2000 an Linux und Open-Source-Software. Er teilt sein Linux-Wissen gerne mit der Welt.

Danke an unsere Sponsoren

Weitere großartige Lektüre zu Linux

Treiben Sie Ihr Geschäft an

Einige der Tools und Services, die Ihrem Unternehmen helfen grow.