Linux-FIND-Befehl mit Beispielen

Wissen Sie, wie viele Dateien sich in einer Neuinstallation von Linux befinden ? Wenn Sie das PopOS! Bei einer Linux-Distribution(Linux distribution) beispielsweise gibt es über 31.000 Dateien. Das ist, bevor Sie anfangen, Dokumente zu erstellen, Musik zu speichern, PDFs herunterzuladen oder Bilder zu organisieren.

Aus diesem Grund wird es zu einer Herausforderung, die richtige Datei oder den richtigen Ordner in Linux zu finden , wenn Sie ihn brauchen. In diesem Artikel lernen Sie, wie Sie den Linux-Befehl FIND(Linux FIND) verwenden , und wir werden Ihnen alle möglichen Beispiele geben.

Linux FIND-Befehlssyntax(Linux FIND Command Syntax)

Syntax bezieht sich darauf, wie Wörter oder Befehle zusammengesetzt werden. So(Just) wie ein normaler Satz durch einfaches Mischen der Wörter Unsinn werden kann, können Befehle fehlschlagen, wenn sie nicht in der richtigen Syntax verwendet werden.

finde [Pfad] [Bedingungen] [Aktionen](find [path] [conditions] [actions])

Das bedeutet Folgendes:

find – initiiert das Find- Dienstprogramm in Linux

Pfad(path ) – wo man suchen muss

Bedingungen(conditions ) – Argumente, die Sie auf die Suche anwenden möchten

Aktionen(actions ) – was Sie mit den Ergebnissen machen wollen

Ein einfaches Beispiel mit allen drei sieht so aus:

finden . -name file-sample.rtf -print(find . -name file-sample.rtf -print)

Wie Sie erraten haben, wird dies den Dateinamen file-sample.rtf finden(file-sample.rtf)

Der Pfad mit Punkt ( . ) weist find an, im aktuellen Verzeichnis und allen darin enthaltenen Verzeichnissen zu suchen. 

Die Bedingung -name weist find an, die Datei mit diesem bestimmten Namen abzurufen.

Die Aktion -print weist FIND an, die Ergebnisse auf dem Bildschirm anzuzeigen.

Der Punkt und -print sind Standardwerte für den Find-Befehl. Es wird also immer noch dasselbe tun, wenn Sie sie nicht verwenden. find -name file-sample.rtf liefert also(find -name file-sample.rtf ) die gleichen Ergebnisse.

Linux FIND in einem anderen Verzeichnis(Linux FIND In Another Directory)

Sie können in einem anderen Verzeichnis als dem, in dem Sie sich gerade befinden, suchen. Geben Sie einfach(Just) den Pfad zum Verzeichnis nach FIND ein . Wenn Sie sich im Stammverzeichnis befinden und wissen, dass sich die Datei irgendwo im home/user Verzeichnis befindet, würden Sie Folgendes verwenden:

find home/user -name file-sample.rtf

Es ist immer noch eine rekursive Suche, also durchläuft sie jedes Verzeichnis unter user .

Linux FIND Mehrere Verzeichnisse durchsuchen(Linux FIND Search Multiple Directories)

Wenn Sie in mehreren Verzeichnissen gleichzeitig suchen möchten, listen Sie diese einfach im Befehl auf, getrennt durch ein Leerzeichen.

find /lib /var /bin -name file-sample.rtf

Linux FIND ohne Rekursion oder einschränkende Rekursion(Linux FIND with No Recursion or Limiting Recursion)

Wenn Sie den obigen FIND -Befehl auf der Root-Ebene verwenden, würde er jedes Verzeichnis auf dem System durchsuchen. Wenn Sie also nur beim aktuellen Verzeichnis bleiben möchten, verwenden Sie die Option -maxdepth . Die Zahl nach -maxdepth sagt Find, wie tief man gehen muss, bevor man anhält. 

Die Verwendung von -maxdepth 1(-maxdepth 1 ) bedeutet nur dieses Verzeichnis. 

find -name file-sample.rtf -maxdepth 1

Die Verwendung von -maxdepth 2(-maxdepth 2 ) oder einer höheren Zahl bedeutet, dass Sie so viele Ebenen tiefer gehen.

find -maxdepth 5 -name file-sample.rtf

Linux FIND Wildcard-Beispiel(Linux FIND Wildcard Example)

Der FIND- Befehl verwendet das Sternchen ( * ) als Platzhalter. Verwenden Sie es für jeden Teil des Namens, bei dem Sie sich nicht sicher sind. Es kann mehr als einmal im Namen verwendet werden. Ohne den Dateityp als Teil des Dateinamens enthalten die Ergebnisse auch übereinstimmende Verzeichnisse.

find home/user -name file*sample*

Linux FIND by Type Beispiel(Linux FIND by Type Example)

Um nur nach einer Datei oder einem Verzeichnis zu suchen, verwenden Sie die Option -type und den entsprechenden Deskriptor. Es gibt ein paar, aber die Dateien und Verzeichnisse sind am häufigsten:

f – Datei

d – Verzeichnis

b – Gerät blockieren

c – Zeichengerät

l – symbolischer Link

s – Steckdose

find home/user -name file*sample* -type d

Linux FIND Beispiel ohne Berücksichtigung der Groß- und Kleinschreibung(Linux FIND Case Insensitive Example)

Im Gegensatz zu Windows kümmert sich Linux darum, ob ein Buchstabe groß oder klein geschrieben wird. Wenn Sie also sowohl nach File-Sample.rtf als auch nach file-sample.rtf suchen möchten, verwenden Sie die Option -iname .

find home/user -iname File-Sample.rtf

Linux FIND Mehrere Dateien Beispiel(Linux FIND Several Files Example)

Angenommen, Sie möchten die .rtf- und .html-Versionen einer Datei finden. Dies kann in einem Befehl mit dem Operator -o (or) erfolgen. In einigen Distributionen müssen Sie die Namen möglicherweise in Klammern setzen, z. B. ( -name file-sample.rtf -o -name file-sample.html )

find home/user -name file-sample.rtf -o -name file-sample.html

Linux FINDE Dateien, die keinem Namen entsprechen(Linux FIND Files That Don’t Match a Name)

Vielleicht wissen Sie, dass es die .html - Version einer Datei gibt, aber nicht, ob es andere gibt. Sie können die .html -Version mit der Option -not aus der Suche herausfiltern .

find home/user -name file-sample* -not -name *.html

Linux FIND ohne Fehlerergebnisse(Linux FIND Without Error Results)

Beachten Sie im Beispiel für die Suche ohne Rekursion, dass alle Verzeichnisse aufgeführt sind, in denen nicht gesucht werden konnte, sowie das richtige Ergebnis. Das nervt. Lassen Sie uns verhindern, dass all diese Verzeichnisse mit „ Zugriff(Permission) verweigert“ angezeigt werden. Kombinieren Sie es mit einem anderen Linux-Terminalbefehl(Linux terminal command) , grep. Sie können auch Suchen(Find) mit grep verwenden, um Dateien mit bestimmten Wörtern(find files with specific words in them) zu finden .

find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”

Lassen Sie uns 2>&1 .

2 – stellt stderr dar , was die Abkürzung für Standardfehlerausgabe ist. 

1 – stellt stdout dar , was die Abkürzung für Standardausgabe ist

> – bedeutet, dass die Ausgabe links davon auf die rechts davon umgeleitet wird.

& – bedeutet zusammenfügen.

2>&1 bedeutet also , die Standardfehler zu nehmen und sie umzuleiten und sie dann zusammen mit der Standardausgabe in einer Ausgabe zusammenzufassen.

Schauen wir uns nun | grep -v “Permission denied” .

| (als Pipe bezeichnet) – weist Linux an, die Ergebnisse dessen, was sich links davon befindet, an alles weiterzuleiten, was sich rechts davon befindet. Es wird dem grep-Befehl zugeführt.

grep – ist ein Textsuchprogramm. 

-v – weist grep an, nach allem zu suchen, das nicht mit dem Text links von -v übereinstimmt. In diesem Fall weist es grep an, nur alles zu finden, was nicht den Text oder die Zeichenfolge „ Berechtigung(Permission) verweigert“ enthält. grep zeigt Ihnen also nur die Ergebnisse, nach denen Sie suchen, und alle Fehler, die nicht mit „ Erlaubnis(Permission) verweigert“ übereinstimmen.

Linux FIND by Permissions Beispiel(Linux FIND by Permissions Example)

Um dies gut zu nutzen, müssen Sie Linux-Berechtigungen lernen(learn Linux permissions)

Die Beispieldateien haben alle die Berechtigungen 664, außer einer mit den Berechtigungen 775. Verwenden Sie die Option -perm , um sie zu finden.

find Documents/ -name file-sample* -type f -perm 775

Linux FIND by Size Beispiel(Linux FIND by Size Example)

Das Suchen von Dateien nach Größe ist praktisch, um diese riesigen Dateien zu erhalten, die Ihre Festplatte füllen. Verwenden Sie die Option -size, die gewünschte Größe und eines der folgenden Suffixe. Wenn kein Suffix verwendet wird, ist -size standardmäßig b . Um Dateien größer oder gleich einer bestimmten Größe zu finden, setzen Sie das Pluszeichen (+) vor die Größe.

M – Megabyte

G – Gigabyte

k – Kilobyte

b – Blöcke (512 Bytes – Standard)

c – Bytes

w – Wörter (zwei Bytes zusammen)

find -size +500k

Linux FINDEN durch Besitzer(Linux FIND by Owner)

Es gibt zwei Möglichkeiten, Dateien nach Besitzer zu finden. Einer ist nach dem Benutzernamen eines Eigentümers und der andere nach der Gruppe des Benutzers. Um anhand des Benutzernamens zu suchen, verwenden Sie die Option -user gefolgt vom Benutzernamen. Um nach Benutzergruppen zu suchen, verwenden Sie -group gefolgt vom Gruppennamen.

find -user Gruppenname(find -user groupname ) oder find -user Benutzername(find -user username)

Linux FIND Files by Last Modified Example

Um Dateien zu finden, die in den letzten X Tagen geändert oder bearbeitet wurden, verwenden Sie -mtime(-mtime) gefolgt von einer Zahl. Wenn Sie ein Minuszeichen ( ) vor die Nummer setzen, wird alles angezeigt, was sich innerhalb der letzten Tage geändert hat. Ein Pluszeichen ( + ) bedeutet innerhalb von so vielen Tagen vor jetzt. 

find -name “file-sample*” -mtime +5 (greater than 5 days ago)

find -name “file-sample*” -mtime -5 (less than 5 days ago)

Um nach zuletzt geändert in Minuten zu suchen, verwenden Sie die Option -mmin gefolgt von der Anzahl der Minuten. Verwenden Sie + und – wie oben.

find -name “file-sample*” -mmin -5

find -name “file-sample*” -mmin +5

Beispiel für Linux FIND Files by Last Access Time(Linux FIND Files by Last Accessed TIme Example)

Die Option, die verwendet wird, um Dateien nach dem letzten Öffnen zu finden, ist -atime für Tage und -amin für Minuten. Folgen Sie ihm mit der Anzahl der Tage oder Minuten, um zurückzugehen, und verwenden Sie das +- und –-Zeichen als größer als und kleiner als.

find -name “file-sample*” -atime -5

find -name “file-sample* -amin -5

Kombinieren Sie FIND mit anderen Linux-Befehlen(Combine FIND with Other Linux Commands)

Es gibt oben ein Beispiel für die Verwendung von find mit dem Befehl grep, und Sie können es mit vielen anderen verwenden. Sie können sehen, dass die Verwendung von find und anderen Befehlen sehr leistungsfähig sein und viel Zeit sparen kann. Stellen Sie(Imagine) sich vor, Sie müssten eine Reihe von Dateien eines bestimmten Typs löschen. Anstatt im Datei-Explorer herumzusuchen, erstellen Sie einfach den richtigen Befehl, und es ist in Sekundenschnelle erledigt. Wie werden Sie den Find-Befehl jetzt verwenden?



About the author

Ich bin ein Computerprofi mit über 10 Jahren Erfahrung. In meiner Freizeit helfe ich gerne am Schreibtisch aus und bringe Kindern den Umgang mit dem Internet bei. Meine Fähigkeiten umfassen viele Dinge, aber das Wichtigste ist, dass ich weiß, wie man Menschen hilft, Probleme zu lösen. Wenn Sie jemanden brauchen, der Ihnen bei etwas Dringenden helfen kann, oder einfach nur ein paar grundlegende Tipps wünschen, dann wenden Sie sich bitte an mich!



Related posts