Code: Alles auswählen
find /var/www/var/session -name "sess_*" -mtime +7 -print0 | while IFS= read -r -d '' file; do rm "$file"; done
Das ist die einzige sichere Art, mit der Ausgabe von find umzugehen (Leerzeichen, newline in Dstrinamen…). In dem Fall vielleicht nicht ganz so wichtig, aber eine gute Angewohnheit.
Aber wenn du schon find benutzt, warum dann nicht:
Code: Alles auswählen
find /var/www/var/session -name "sess_*" -mtime +7 -delete
? find kann selber löschen, kein Grund, haufenweise Shells zu forken.
Beide Lösungen hier funktionieren und sind wesentlich weniger abartig als die bisherigen. Ich würde die obere bevorzugen, weil find mysteriös ist.
EDIT: Hier noch ein Beispiel ganz ohne find:
Code: Alles auswählen
tmp=$(mktemp); touch -d '-7 days' "$tmp"; for i in /var/www/var/session/*; do [[ "$i" -nt "$tmp" ]] || rm "$i"; done; rm "$tmp"
Wie immer alle drei Beispiele ungetestet vom Handy, keine Haftung
![Wink ;)](./images/smilies/icon_wink.gif)
.