Linux/find

Aus Ringo's Wiki
Version vom 19. März 2019, 11:44 Uhr von Ringo (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== find == Mit dem find-Befehl kann man nach Dateien und Verzeichnissen suchen und sie nach bestimmten Kriterien filtern. Außerdem kann man bestimmte Aktione…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

find

Mit dem find-Befehl kann man nach Dateien und Verzeichnissen suchen und sie nach bestimmten Kriterien filtern. Außerdem kann man bestimmte Aktionen, wie zum Beispiel löschen oder umbenennen durchführen.

Wenn man find ohne Parameter aufruft, findet er alle Dateien und Verzeichnisse im aktuellen Verzeichnis und darunter.

Die allgemeine Syntax lautet find {Pfad} {Suchkriterien} {Aktion}

Alle Parameter sind optional.

Möchte man nach einem bestimmten Verzeichnis oder Dateinamen suchen geht das wie folgt:

  • find -name test

Wenn man nicht genau weiß, die die Datei heißt kann man auch mit Wildcards suchen:

  • find -name foo*bar oder find -name '*.flv'

Man kann mehrere Verzeichnisse angeben, in denen gesucht werden soll, z.B.:

  • find /var /etc $HOME -name test

Wenn man Dateien mit einem bestimmten Inhalt sucht, dann kann man das wie folgt machen:

  • find /var/www -type f -exec grep -H 'suchtext' {} \;

Dateien suchen, die älter sind als X Tage:

  • find /var/www/maps -type f -ctime +7
  • find /var/www/maps -type f -ctime +7 -delete zum löschen

Dateien suchen, die älter sind als X Minuten:

  • find /var/www/maps -type f -cmin +30
  • find /var/www/maps -type f -cmin +30 -delete zum löschen

Leere Verzeichnisse finden:

  • find . -type d -empty
  • find . -type d -empty -delete zum löschen