praxis tipps: find

Obwohl das (GNU) find Kommando wirklich ein alter Hut ist, lohnt es sich zumindest für mich nochmal die wichtigsten Features zusammenzufassen:

-ctime n
findet Dateien die genau n-Tage alt sind. Sollen Dateien gefunden werden die jünger als n sind, muss dem n ein Minuszeichen vorangestellt werden. Ein vorangestelltes Pluszeichen findet dementsprechend Dateien die älter als n-Tage sind. An dieser Stelle kann ruhig nochmal erwähnt werden, dass ctime die Change Time und damit das primäre Datum einer Datei auf einem POSIX kompatiblen Rechner darstellt. Daneben gäbe es noch die atime (Access Time) und mtime (Modification Time) die eine Änderung des inode-Eintrages darstellt (…nein – eine Create Time gibt es tatsächlich unter POSIX nicht).
-perm BITS
Sucht nach Dateien die genau dem Oktalmuster BITS entsprechen, also bspw. „find -perm 0644“. Wenn man eine Auflistung von Dateien braucht die mindestens aber nicht nur ein bestimmte Rechtebits gesetzt haben stellt man ein Pluszeichen voran. Damit kann man recht einfach bspw. suid-Programme suchen: „find . -perm +4000“
-user USERNAME / -nouser USERNAME
Sucht Dateien die USERNAME gehören oder eben nicht (-nouser)
-group GROUPNAME / -nogroup GROUPNAME
Sucht Dateien deren Gruppenzugehörigkeit GROUPNAME ist oder eben nicht (-nogroup)
-maxdepth n
das GNU find Kommando sucht automatisch rekursiv nach unten den Verzeichnisbaum durch. Wenn man das nicht möchte (bspw. im Zusammenhang mit einem kombinierten cp-Befehl) begrenzt man die Verzeichnistiefe in der find sucht mit dem Parameter n
-iname NAME
sucht nach einem Namens(muster) und ignoriert Groß- und Kleinschreibung. Ansonsten analog -name

Darüber hinaus liegt die Stärke von find v.a. im Zusammenhang mit gekoppelten Kommandos durch den -exec Parameter.

find / -perm +4000 -exec chmod u-s {} ;

nimmt das suid-bit aus allen gefundenen suid-Programmen heraus ..was nicht unbedingt sinnvoll ist 😉

Ein Gedanke zu „praxis tipps: find“

  1. Um die Suchergebnisse einen bestimmten Directories (hier: @eaDir Directories wie sie in Synology’s DSM vorkommen) zu ignorieren, kann folgendes Kommando benutzt werden:
    find . -name „*.png“ -not -path „*/@eaDir/*“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.