On Tuesday 01 August 2006 11:22, Jens Strohschnitter wrote:
Hallo
ich möchte aus einem Verzeichnis Dateien auf die länger als 30 Tage nicht mehr zugegriffen wurden löschen. Das ist kein Problem mit find, aber ich muss aus dem Verzeichnis bestimmte Dateien und Unterverzeichnisse excluden. Eine Excludefunktion habe ich bei find nicht gefunden. Also dachte ich mir ich greppe mir mit -v alles raus was nicht gelöscht werden darf, schiebe es in eine Datei und durch- laufe das Ganze dann mit eine for-Schleife. Leider sind in den Dateinamen Leerzeichen und schon klappts nicht mehr mit der for-Schleife:
#find /test -mtime +30 -type f -print | grep -v Exclude1 | grep -v Exclude2 | cut -f2 -d\/ | sort -u > /tmp/LISTE # #for i in `cat /tmp/LISTE`; do # echo $i # rm -rf $i #done
#find /test -mtime +30 -type f -print | grep -v Exclude1 | grep -v Exclude2 | cut -f2 -d\/ | sort -u > /tmp/LISTE # #for i in `cat /tmp/LISTE`; do # echo "$i" # rm -rf "$i" #done anfuehrungszeichen koennten helfen.
Weiss jemand wie ich im find etwas exluden kann und damit dann -exec verwenden kann ? Oder wie kann ich mit for etwas einlesen, was Leerzeichen enthält und diese nicht als einzelne Variablen ausgeben ?
-- Regards,
Jens Strohschnitter
greets Michael