Es folgen einige Beispiele, wie man den “find-Befehl” nutzen kann… viel Spaß beim ausprobieren.
find -size +10M -20M -exec ls -lah {} \;
-> Sucht Dateien ab dem aktuellen Verzeichnis, die gräßer sind als 10MB, aber kleiner als 20MB und zeigt diese an.
find /home/ -iname '*.jpg' -exec tar -czf bilder.tar.gz {} \;
-> Ab dem home-Verzeichnis nach Dateien suchen, die auf “.jpg/.JPG” enden duchsuchen und diese archivieren.
find / -used 1
-> Ab dem root-Verzeichnis alle Dateien suchen, welche heute (1 -> Tag) verwendet wurde.
find / -amin -10 [ -atime -10 ]
-> Ab dem root-Verzeichnis alle Dateien suchen, auf denen vor weniger als 10 Minuten [ Tage ] zugegriffen wurde.
find / -mmin +10 [ -mtime +10 ]
-> Ab dem root-Verzeichnis alle Dateien suchen, welche vor mehr als 10 Minuten [ Tage ] geändert wurden.
touch --date='15:00' /tmp/ref
find / -newer /tmp/ref
-> Ab dem root-Verzeichnis alle Dateien suchen, welche neuer sind als heute um 15:00 Uhr.
find / -type f -name "*neu*"
-> Ab dem root-Verzeichnis alle Dateien suchen, in welchen “neu” vorkommt.
find / -type d -name "*home*"
-> Ab dem root-Verzeichnis alle Verzeichnisse suchen, in welchen “home” vorkommt.
find . -empty
-> Im aktuellen Verzeichnis nach Dateien suchen, welche eine Größe von “null” haben.
find /home/ -user root [ -group root ]
-> Ab dem home-Verzeichnis nach Dateien suchen, welche dem User “root” [ der Gruppe “root” ] gehören.
find /home/ ! -user root [ ! -group root ]
-> Ab dem home-Verzeichnis nach Dateien suchen, welche nicht dem User nicht “root” [ nicht der Gruppe “root” ] gehören.
Es folgt noch ein Beispiel + Erklärung:
# alle Dateien (type f) die älter als 30 Tage (mtime +30) sind außer alt_datum.tar.bz2 (exclude-from alt_`date +%d-%m-%y`.tar.bz2), werden zu einem Archiv zusammengefasst
find / -type f -mtime +30 --exclude-from=alt_`date +%d-%m-%y`.tar.bz2 -exec tar -cjf alt_`date +%d-%m-%y`.tar.bz2 {} \;
# nun alle Dateien, die älter als 30 Tage sind löschen
find / -type f -mtime +30 --exclude-from=alt_`date +%d-%m-%y`.tar.bz2 -exec rm {} \;
# alle Dateien welche den Namen “alt_irendwas.tar.bz2” haben (ianme “alt_*.tar.bz2”, werden gelöscht
find / -type f -iname "alt_*.tar.bz2" -mtime +60 -exec rm {} \;