Am Dienstag, 1. August 2006 11:22 schrieb Jens Strohschnitter:
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
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 ?
statt der for-Schleife ein while-Schleife benutzen, dann geht's auch mit Leerzeichen find .... | while read l ; do .... $l ....; done Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer