GNU/Linux >> LINUX-Kenntnisse >  >> Linux

50 einfache und nützliche Beispiele für den Find-Befehl in Linux

Einer der Hauptgründe für die weltweite Popularität, die Linux- und BSD-Systeme heute genießen, sind ihre Standard-Tools und -Dienstprogramme. Linux bietet einige der besten Methoden zum Suchen und Zugreifen auf Dateien direkt von der Befehlszeile aus. Der Find-Befehl in Linux ist ein solches Dienstprogramm, mit dem Linux-Benutzer ihr System effektiv nach bestimmten Dateitypen durchsuchen können. Es ist ein Befehlszeilenprogramm, das leistungsstarke Suchfunktionen ermöglicht und ein überzeugendes Werkzeug in der Hand erfahrener Benutzer sein kann. Wenn Sie den Find-Befehl im Detail beherrschen und Ihre Linux-Kenntnisse beschleunigen möchten, sind Sie hier genau richtig.

Alltägliche Beispiele für den Find-Befehl in Linux

Wir glauben, dass der beste Weg, Linux-Befehle zu lernen, darin besteht, sie selbst auszuprobieren. Die unten gezeigten Befehle sollten trotz Ihrer Desktop-Umgebung auf allen Linux-Distributionen einwandfrei funktionieren. Sie können also schnell einen Suchbefehl in Linux ausprobieren, indem Sie ein Terminal mit Strg + T öffnen und die Befehle von hier aus kopieren und einfügen. Versuchen Sie, diese Befehle so oft wie möglich in Ihrer täglichen Computerarbeit zu verwenden, um sie in kurzer Zeit zu beherrschen.

Struktur des Suchbefehls

Der Find-Befehl in Linux hat die folgende Struktur.

finde [Pfade] [Ausdruck] [Aktionen]

Hier bezeichnen Pfade das Verzeichnis, in dem Sie nicht „finden“, um nach den angegebenen Dateien zu suchen. Mit dem Ausdruck können Sie Ihre Dateien nach bestimmten Kriterien filtern, während Sie mit Aktionen Shell-Befehle für Dateien ausführen können. Die Standardaktion ist print, die einfach die Dateien druckt, die dem Ausdruck in einem beliebigen Pfad entsprechen. Find zeigt die Dateien rekursiv an, dh es durchsucht zuerst jedes Verzeichnis und gibt dann die Ergebnisse entsprechend aus.

Grundlegende Linux-Suchbefehle

Sie können einige grundlegende find-Befehle verwenden, um ein Gefühl dafür zu bekommen, was find tun kann. Diese Befehle sind ziemlich einfach und erfordern keine Vorkenntnisse mit anderen Befehlszeilendienstprogrammen.

1. Alle im aktuellen Verzeichnis vorhandenen Dateien auflisten

$finden

- -

Dadurch werden alle im aktuellen Verzeichnis vorhandenen Dateien gedruckt. Wenn das aktuelle Verzeichnis weitere Verzeichnisse enthält, werden diese ebenfalls angezeigt. Dieser Befehl entspricht dem Befehl

$ find -print.

2. Alle in einem bestimmten Verzeichnis vorhandenen Dateien auflisten

$ finde /Ordner

Dieser Befehl druckt alle Dateien im Verzeichnis /folder . Mit diesem Befehl können Sie alle Dateien eines bestimmten Pfads in Ihrem Linux-System auflisten.

3. Nach einer bestimmten Datei suchen

$ find -name test.txt

Dieser Befehl sucht nach einer Datei namens test.txt in Ihrem aktuellen Verzeichnis und in jedem anderen Unterverzeichnis. Verwenden Sie diesen Befehl, wenn Sie nach bestimmten Dateien suchen.

4. Nach einer bestimmten Datei in einem Verzeichnis suchen

$ find /Docs -name test.txt

Dieser Befehl sucht im Ordner /Docs nach der Datei namens test.txt . Sie können bei der Verwendung dieses Befehls sowohl absolute als auch relative Pfade verwenden.

5. Nach einer Datei in mehreren Verzeichnissen suchen

$ find /opt /usr /var -name foo.scala -type f

Sie können den Linux-Befehl find verwenden, wenn Sie gleichzeitig in mehreren Verzeichnissen nach einer Datei suchen. Geben Sie bei der Suche einfach die Verzeichnisnamen hintereinander gefolgt von einem Leerzeichen ein.

6. Nach einem Datei-Ignorierungsfall suchen

$ find -iname test.txt

Dieser Befehl sucht nach der Datei test.txt ohne den Fall zu entsprechen. Wenn Sie also zwei Dateien namens test.txt haben und Test.txt , es werden beide Dateien angezeigt. Die Option -iname ermöglicht es dem Befehl find, dies zu tun.

7. Nach Ordnern im aktuellen Verzeichnis suchen

$ find -type d

Dieser Befehl listet jedes Verzeichnis auf, das Sie unter Ihrem aktuellen Arbeitsverzeichnis haben. Sie können die Namensoption hinzufügen, um bestimmte Verzeichnisse aufzulisten.

8. Nach einem bestimmten Ordner in einem Verzeichnis suchen

$ find /home -type d -name users

Dieser Befehl sucht im Verzeichnis /home nach einem Ordner namens users Verzeichnis. Sie können die Option -iname anstelle von -name hinzufügen, um ohne Rücksicht auf die Groß-/Kleinschreibung zu suchen.

9. Suche nach PHP-Dateien anhand des Namens

$ find -type f -name test.php

Dieser Befehl listet die PHP-Datei namens test.php auf im aktuellen Arbeitsverzeichnis vorhanden.

10. Nach allen PHP-Dateien suchen

$ find -type f -name „*.php“

Dieser Find-Befehl in Linux druckt jede PHP-Datei, die Sie in Ihrem aktuellen Arbeitsverzeichnis haben. Sie können die Pfadoption vor dem Typ hinzufügen, um PHP-Dateien aufzulisten, die nur in einem bestimmten Verzeichnis vorhanden sind.

11. Alle symbolischen Links finden

$ find /usr -type l

Der obige Befehl sucht nach jedem symbolischen Link, den Sie in Ihrem aktuellen Verzeichnis haben, und druckt sie entsprechend aus.

12. Nach Dateien mit unterschiedlichen Erweiterungen suchen

$finden. -type f \( -name „*cache“ -o -name „*xml“ -o -name „*html“ \)

Der obige find-Befehl sucht nach Dateien namens cache mit unterschiedlichen Erweiterungen. Sie können nach zusätzlichen Erweiterungen suchen, indem Sie die Namensoption gefolgt vom -o-Flag hinzufügen.

Dateien nach Berechtigung suchen

Mit dem Befehl find können Linux-Benutzer anhand ihres Berechtigungsstatus nach Dateien suchen. Dies ist praktisch, wenn Ihr System mehrere Benutzer hat und Sie sicherstellen müssen, dass niemand unbefugten Zugriff auf Ihre Daten erhält.

13. Dateien mit 777-Berechtigung suchen

$ find -type f -perm 0777 -print

Dieser Befehl listet alle Dateien im aktuellen Arbeitsverzeichnis auf, deren Zugriffsrechte auf 777 gesetzt sind. Dies sind die Dateien, die jeder Benutzer lesen, schreiben und ausführen kann.

14. Dateien ohne 777-Berechtigungen finden

$ find / -type f ! -perm 777

Dieser Find-Befehl unter Linux sucht nur nach Dateien, die andere Berechtigungen als 777 haben. Sie können / durch jeden anderen Ort ersetzen, um Ihre Suchergebnisse einzugrenzen.

15. SGID-Dateien mit 644-Berechtigungen finden

$ find / -perm 2644

Dieser Suchbefehl sucht nur nach SGID-Dateien, deren Berechtigungsstatus auf 644 gesetzt ist. SGID-Dateien ermöglichen den temporären Zugriff auf Dateien, die Sie nicht besitzen oder auf die Sie keinen Zugriff haben.

16. Alle Sticky-Bit-Dateien mit 551 Berechtigungen finden

$ find / -perm 1551

Sticky Bit-Dateien sind eine Reihe von Dateien oder Ordnern, die nur von dem Benutzer, der sie erstellt hat, oder dem Root-Benutzer umbenannt oder gelöscht werden können. Dieser Befehl zeigt alle Sticky Bit-Dateien in Ihrem System mit 551-Berechtigungen an.

17. Alle SUID-Dateien finden

$ find / -perm /u=s

SUID-Dateien ermöglichen anderen Benutzern als dem Besitzer der Dateigruppe oder dem Root-Benutzer den vorübergehenden Besitz einer Dateigruppe. Dieser find-Befehl listet alle SUID-Dateien auf, die Sie auf Ihrem aktuellen Linux-Rechner haben.

18. Alle SGID-Dateien finden

$ find / -perm /g=s

SGID-Dateien ähneln SUID-Dateien in vielerlei Hinsicht, außer dass beim Ausführen von Dateien mit SGID-Berechtigungen die Ausführung so erfolgt, als ob der ursprüngliche Eigentümer den Prozess ausführen würde. Dieser Suchbefehl listet alle SGID-Dateien unabhängig von ihrem Berechtigungsstatus auf.

19. Schreibgeschützte Dateien suchen

$ find / -perm /u=r

Nur-Lese-Dateien verbieten es Linux-Benutzern, in sie zu schreiben oder sie auszuführen. Sie können nur vom Dateieigentümer oder dem Root-Benutzer geschrieben oder ausgeführt werden. Dieser Suchbefehl zeigt alle schreibgeschützten Dateien an, über die Ihr Computer derzeit verfügt.

20. Alle ausführbaren Dateien finden

$ find / -perm /a=x

Ausführbare Dateien sind einfach Dateien, die ausgeführt werden können, wie z. B. Binärdateien. Der obige Linux-„Suchbefehl“ durchsucht das System nach solchen Dateien und listet sie entsprechend auf.

21. Alle Dateien mit 777-Berechtigungen finden und auf 644 ändern

$ find / -type f -perm 0777 -print -exec chmod 644 {} \;

Der obige Befehl find durchsucht alle Dateien, denen die Berechtigung 777 zugeordnet ist, und ändert ihren Berechtigungsstatus mit dem Befehl chmod auf 644. Nur Sie können jetzt mit 644-Berechtigung in die Dateien lesen oder schreiben.

22. Alle Verzeichnisse mit 777-Berechtigungen finden und auf 755 ändern

$ find / -type d -perm 777 -print -exec chmod 755 {} \;

Dieser Linux-Suchbefehl sucht nach allen Verzeichnissen mit 777-Berechtigung und ändert deren Berechtigungsstatus auf 755. Im Wesentlichen gewährt dies nur dem Eigentümer volle Berechtigungen und anderen Benutzern Lese- und Ausführungsberechtigungen.

Suchen Sie bestimmte Dateien mit „Suchen“

Find kann für die Suche nach bestimmten Dateien sehr effektiv verwendet werden. Sie können find verwenden, um Dateien basierend auf bestimmten Kriterien auszuwählen und Shell-Operationen wie das Löschen von Dateien an ihnen auszuführen.

23. Datei suchen und entfernen

$ find -type f -name „test.txt“ -exec rm -f {} \;

Dieser Linux-Suchbefehl wird verwendet, wenn Sie eine Datei aus einer Liste mit vielen Dateien löschen müssen. In diesem Fall findet es zuerst die Datei namens test.txt im aktuellen Verzeichnis und entfernt es mit rm-f.

24. Mehrere Dateien finden und gleichzeitig entfernen

$ find -type f -name „*.mp3“ -exec rm -f {} \;

Der Find-Befehl ist nützlich, um große Arrays bestimmter Dateitypen zu durchsuchen und sie auf einmal zu entfernen. Der obige Befehl durchsucht Ihr System nach .mp3 Dateien und löscht sie ohne Nachfrage. Sie können das interaktive Flag -i mit dem rm-Teil hinzufügen, um bei jedem Löschvorgang eine Eingabeaufforderung zu erhalten.

25. Alle leeren Dateien im System finden

$ find /tmp -type f -empty

Leere Dateien können Ihre Systemressourcen in sehr kurzer Zeit belasten. Verwenden Sie den obigen Befehl, um alle leeren Dateien mit dem Befehl find aufzulisten. Sie können diese Dateien löschen, indem Sie -exec rm -f {} \; genau wie der obige Befehl.

26. Alle leeren Ordner im System finden

$ find /tmp -type d -empty

Dieser Befehl listet alle leeren Ordner auf, die sich in /tmp befinden Verzeichnis. Sie können dies verwenden, um leere Ordner in jedem anderen Verzeichnis zu finden und sie auch zu löschen, wenn Sie möchten, wie Sie es zuvor getan haben.

27. Alle versteckten Ordner im System finden

$ find /home -type f -name „.*“

Versteckten Ordnern wird in Linux-Systemen normalerweise ein einzelner Punkt (.) vorangestellt. Verwenden Sie den obigen Befehl, um alle versteckten Ordner aufzulisten, die Sie in Ihrem /home-Verzeichnis haben.

Dateien nach Benutzer suchen

Der Find-Befehl ist auch nützlich, um Dateien basierend auf Benutzergruppen zu suchen. Sie können mit Linux-Suchbefehlen sehr schnell nach bestimmten Dateien für bestimmte Benutzergruppen suchen und Dateiberechtigungen ändern.

28. Eine Datei finden, die dem Benutzer gehört

$ find / -user root -name test.txt

Sie können den Find-Befehl in Linux verwenden, um eine einzelne Datei zu durchsuchen, die einem bestimmten Benutzer gehört. Der obige Befehl sucht nach einer Datei namens test.txt im / Verzeichnis, das dem Benutzer root gehört.

29. Alle Dateien finden, die dem Benutzer gehören

$ find /home -user Benutzername

Der obige Linux-Befehl sucht nach allen Dateien im /home-Verzeichnis, die zum Benutzer „username“ gehören. Sie müssen "Benutzername" ersetzen mit Ihrem Linux-Benutzernamen, um alle Dateien zu finden, die Ihnen gehören.

30. Alle Dateien finden, die zu einer Gruppe gehören

$ find /home -group programmer

Linux-Dateien gehören normalerweise zu einigen Gruppen. Mit dem obigen Linux-Befehl können Sie nach allen Dateien suchen, die zu einer bestimmten Gruppe namens “Programmierer” gehören und druckt sie im Terminal aus. Ersetzen Sie „Programmierer“ durch den Gruppennamen, nach dem Sie suchen möchten.

31. Bestimmte Dateien für einen Benutzer suchen

$ find /home -user bob -iname „*.txt“

Mit dem Befehl find können Sie nach bestimmten Dateien suchen, die einem Benutzer gehören. Der obige Befehl tut dies und listet alle .txt-Dateien auf, die dem Benutzer bob gehören. Ersetzen Sie bob durch Ihren Benutzernamen und .txt mit anderen Dateitypen, um Dateien eines bestimmten Typs zu finden, die Ihnen gehören.

Dateien nach Zeit suchen

Find ermöglicht es Systemadministratoren auch, ihr System effektiv zu überwachen. Es ermöglicht die Suche nach Dateien basierend auf Änderungszeit, Zugriffszeit usw.

32. Alle Dateien finden, die in den letzten 50 Tagen geändert wurden

$ find / -mtime 50

Mit dem Befehl find können Benutzer nach Dateien suchen, die innerhalb einer bestimmten Zeit geändert wurden. Der obige Befehl druckt alle Dateien in Ihrem System, die vor 50 Tagen geändert wurden.

33. Alle Dateien finden, auf die in den letzten 50 Tagen zugegriffen wurde

$ find / -atime 50

Die Option -atime zeigt die Dateien an, auf die innerhalb eines definierten Zeitraums zugegriffen wurde. Der obige Befehl listet alle Dateien Ihres Systems auf, auf die vor 50 Tagen zugegriffen wurde.

34. Alle Dateien finden, die in den letzten 50–100 Tagen geändert wurden

$ find / -mtime +50 –mtime -100

Der Find-Befehl in Linux ermöglicht es Benutzern, nach allen Dateien zu suchen, die in einem bestimmten Zeitraum geändert wurden. Dazu wird der Operator + und – in Verbindung mit -mtime verwendet. Der obige Befehl findet alle Dateien, die Sie in den letzten 50 bis 100 Tagen geändert haben.

35. Alle in der letzten 1 Stunde geänderten Dateien finden

$ find / -cmin -60

Dieser Befehl findet und listet alle Dateien auf, die in der letzten Stunde geändert wurden. Sie können / durch ein bestimmtes Verzeichnis ersetzen, um Ihre Suche einzugrenzen. Ändern Sie 60 in eine beliebige andere Zahl wie 120, um Dateien zu finden, die in dieser Zeit geändert wurden (2 Stunden für 120).

36. Alle Dateien finden, die in der letzten 1 Stunde geändert wurden

$ find / -mmin -60

Der obige Befehl zeigt alle Dateien an, die innerhalb der letzten 1 Stunde geändert wurden. Wechseln Sie 60 zu einer beliebigen anderen Nummer, um den für Ihren Zweck erforderlichen Zeitrahmen zu ändern.

37. Alle Dateien finden, auf die in der letzten 1 Stunde zugegriffen wurde

$ find / -amin -60

Dieser Befehl zeigt alle Dateien an, auf die Sie in der letzten Stunde zugegriffen haben. Wie bei den beiden vorherigen Befehlen können Sie 60 für das gewünschte Ergebnis ändern.

Dateien nach Größe suchen

Manchmal müssen Sie Dateien anhand ihrer Größe durchsuchen. Find ist auch in dieser Hinsicht nützlich. Sie können verschiedene Optionen zum genaueren Suchen von Dateien basierend auf der Größe hinzufügen.

38. Dateien mit einer Größe von 50 MB suchen

$ find / -size 50M

Dieser „Suchbefehl“ in Linux druckt alle Dateien aus, die Sie über 50 MB groß haben. Ersetzen Sie / mit Ihrem gewünschten Verzeichnis und 50 MB mit jeder anderen Größe, um Ihre Suchergebnisse effektiver einzugrenzen.

39. Alle Dateien über 100 MB finden

$ find / -size +100M

Der obige Befehl listet alle Dateien auf, die Sie über der 100-MB-Marke in Ihrem / haben Verzeichnis. Sie können 100 M durch andere Dateigrößen ersetzen, um das gewünschte Ergebnis zu erzielen.

40. Suchen Sie Dateien zwischen 50 MB und 100 MB

$ find / -size +50M -size -100M

Manchmal müssen Sie Dateien innerhalb eines bestimmten Größenbereichs finden. Der obige Befehl zeigt alle Dateien an, die Sie zwischen 50 MB und 100 MB groß haben. Ändern Sie die optionalen Parameter für die Übereinstimmung mit bestimmten Suchkriterien.

41. Alle Dateien über 500 MB löschen

$ find /Movies -size +500M -exec rm -rf {} \;

Der Befehl find ist nützlich, um Dateien über einem bestimmten Limit zu suchen und sie sofort vom Terminal zu löschen. Angenommen, Sie haben einige alte Filme in einem Ordner herumliegen und möchten sie auf einmal löschen. Mit dem obigen Befehl können Sie genau dies tun. Stellen Sie sicher, dass Sie /Movies ersetzen mit dem Ordnernamen, in dem sich Ihre Dateien befinden.

42. Größte Dateien finden

$finden. -type f -exec ls -s {} \; | sortieren -n -r | Kopf -5

Der obige Find-Befehl druckt die 5 größten Dateien, die Sie in Ihrem aktuellen Arbeitsverzeichnis und in seinen Unterverzeichnissen haben.

43. Kleinste Dateien finden

$finden. -type f -exec ls -s {} \; | sortieren -n | Kopf -5

Sie können auch den find-Befehl in Linux verwenden, um die kleinsten Dateien anzuzeigen. Dieser Befehl gibt die 5 kleinsten Dateien aus, die Sie in Ihrem aktuellen Verzeichnis haben.

Verschiedene Suchbefehle

Der Find-Befehl in Linux bietet viele zusätzliche Funktionen wie das Suchen von Dateien anhand des darin enthaltenen Textes, das Suchen und Löschen von Dateien, das Suchen von Dateien anhand von Mustern und so weiter. Die folgenden Befehle demonstrieren kurz einige dieser Fähigkeiten.

44. Bestimmte Dateien suchen und löschen

$ find / -type f -name *.mp3 -size +10M -exec rm {} \;

Mit diesem Linux-Suchbefehl können Benutzer alle .mp3-Dateien in ihrem System finden, die mehr als 10 MB Speicherplatz belegen, und sie löschen. Sie können .mp3 durch jeden anderen Dateityp und den Größenparameter für bestimmte Dateitypen ersetzen.

45. Dateien finden, die keinem Muster entsprechen

$ find /home -type f -not -name „*.html“

Der obige Find-Befehl unter Linux sucht nach allen Dateien in /home Verzeichnis, das nicht auf .html endet. Die Option -not erlaubt „find“, dies zu tun.

46. Dateien nach Text in der Datei suchen

$finden. -type f -name „*.java“ -exec grep -l StringBuffer {} \;

Sie können grep verwenden, um Dateien basierend auf dem darin enthaltenen Text zu finden. Der obige Linux-„Suchbefehl“ sucht nach .java Dateien, die StringBuffer enthalten. Durch Hinzufügen des Flags -i zu grep wird bei dieser Suche die Groß-/Kleinschreibung ignoriert.

47. Dateien suchen und kopieren

$finden. -type f -name „*.mp3“ -exec cp {} /home/MusicFiles \;

Suchen kann verwendet werden, um bestimmte Dateien zu finden und sie an einen neuen Ort zu kopieren. Der obige Befehl findet alle .mp3-Dateien im aktuellen Verzeichnis und kopiert sie in den Ordner /home/MusicFiles .

48. Dateien suchen und verschieben

$finden. -type f -name „*.jpg“ -exec cp {} /home/Pictures \;

Find kann auch zum effektiven Verschieben von Dateien verwendet werden. Der obige Befehl durchsucht jede .jpg-Datei, die Sie in Ihrem aktuellen Verzeichnis haben, und verschiebt sie in das Verzeichnis /home/Pictures .

49. Dateien suchen und tarieren

$finden. -type f -name „*.java“ | xargs tar cvf meinedatei.tar

Sie können find verwenden, um nach bestimmten Dateien zu suchen und sie in Tarballs zu archivieren. Der obige Befehl findet alle .java-Dateien im aktuellen Verzeichnis und komprimiert sie in eine tar-Datei namens myfile.tar .

50. Fehlermeldungen filtern

$ find [Pfade] [Ausdruck] [Aktionen] 2>/dev/null

Manchmal können Fehler wie ‘Berechtigung verweigert’ auftreten oder etwas anderes, während Sie einige Suchbefehle ausprobieren. Sie können diese Fehler nach /dev/null umleiten , wie oben gezeigt.

Abschlussgedanken

Der Find-Befehl in Linux ist eines der nützlichsten Befehlszeilen-Tools, die Sie zur effektiven Überwachung Ihres Systems oder zur häufigen Dateiverarbeitung verwenden können. Intelligente Implementierungen verschiedener „Suchbefehle“ machen Sie im Handumdrehen zum Linux-Power-User. Unsere Redakteure haben ihr Bestes gegeben, um die nützlichsten Suchbefehle für Ihren täglichen Gebrauch zu skizzieren. Verwenden Sie diese Befehle in Ihrer täglichen Computerarbeit, um den größtmöglichen Nutzen aus Ihrem Linux-System zu ziehen.


Linux
  1. Linux-Cat-Befehl:Verwendung und Beispiele

  2. Linux-Befehle – Übersicht und Beispiele

  3. ls-Befehl unter Linux:17 nützliche Beispiele erklärt

  4. 25 einfache Beispiele für den Linux-Suchbefehl

  5. Finden Sie Befehlsbeispiele in Linux

11 Nützliche Beispiele für Linux-Datumsbefehle

Befehlsoptionen und Beispiele für den Tee-Befehl in Linux

50 einfacher und nützlicher Linux-Cut-Befehl in Unix mit Beispielen

16 Praktische und nützliche Beispiele für Echo Command unter Linux

15 super nützliche Beispiele für den Find-Befehl in Linux

12 Nützliche Beispiele für Linux-Datumsbefehle