
Das folgende Skript funktioniert für einen einzelnen Ordner, aber ich möchte alle Unterverzeichnisse durchlaufen.
ls /home/user/Desktop/cron_database_hourly/*/*_[012][0-9]*.zip | head -n -1 | \
while read -r f; do rm "$f"; done
Antwort1
Sie könnten wahrscheinlich mit etwas wie (ungetestet) davonkommen -
for each in `find -type d /home/usr/Desktop/cron_database/hourly`
do
ls -t $each/_[012][0-9]*.zip | head -n -1 | \ while read -r f;
do
rm "$f"
done
done
Die „for each“-Schleife findet eine Liste aller Verzeichnisse, und das Hinzufügen von „-t“ zu ls bewirkt eine Sortierung nach Datum, d. h. mit dem aktuellsten zuerst.