find – Linux

This blog post has been published on 2010-01-31 and may be out of date.

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 {} \;

Published by

voku

Lars Moelleken | Ich bin root, ich darf das!

%d bloggers like this: