Skript zum Entfernen aller Unterverzeichnisse, ABER zum Behalten einer aktuellen Sicherungsdatei aller Unterverzeichnisse

Skript zum Entfernen aller Unterverzeichnisse, ABER zum Behalten einer aktuellen Sicherungsdatei aller Unterverzeichnisse

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.

verwandte Informationen