Possible en double:
Delete all but the most recent X files in bashcommande Bash pour supprimer tous mais 5 derniers répertoires
J'ai un script pour créer des sauvegardes incrémentielles quotidiennes et je dois supprimer toutes les sauvegardes mais 5 derniers.
Par exemple, j'ai ce dossier:
drwxr-xr-x 4 root root 4096 Oct 29 01:10 2010-10-29 drwxr-xr-x 4 root root 4096 Oct 30 01:10 2010-10-30 drwxr-xr-x 4 root root 4096 Oct 31 01:10 2010-10-31 drwxr-xr-x 4 root root 4096 Nov 1 01:10 2010-11-01 drwxr-xr-x 4 root root 4096 Nov 2 01:10 2010-11-02 drwxr-xr-x 4 root root 4096 Nov 3 01:10 2010-11-03 drwxr-xr-x 4 root root 4096 Nov 4 01:10 2010-11-04 drwxr-xr-x 4 root root 4096 Nov 5 01:10 2010-11-05 drwxr-xr-x 4 root root 4096 Nov 6 01:10 2010-11-06 drwxr-xr-x 4 root root 4096 Nov 7 01:10 2010-11-07 drwxr-xr-x 4 root root 4096 Nov 8 01:10 2010-11-08
Et je dois maintenir seulement les 5 derniers répertoires et supprimer les autres. Après exécution de commande, je dois avoir seulement ceci:
drwxr-xr-x 4 root root 4096 Nov 4 01:10 2010-11-04 drwxr-xr-x 4 root root 4096 Nov 5 01:10 2010-11-05 drwxr-xr-x 4 root root 4096 Nov 6 01:10 2010-11-06 drwxr-xr-x 4 root root 4096 Nov 7 01:10 2010-11-07 drwxr-xr-x 4 root root 4096 Nov 8 01:10 2010-11-08
Je ne pas besoin de supprimer avant 5 jours, je dois supprimer tous sauf 5 derniers répertoires :)
Maintenant, je suis en utilisant :
find /backup/increment -maxdepth 1 -type d -mtime +5 -exec rm -rf {} \;
Mais je dois amélioré pas basé dans le temps :)
EDIT: Ceci est un exemple pour un serveur qui fait des sauvegardes tous les jours, mais j'ai besoin d'un script qui supprime tous les dossiers précédent 5 parce que mon ordinateur fait des sauvegardes à 00:10 la nuit, mais pas toutes les nuits. mon ordinateur ne fonctionne pas tous les jours, et je dois toujours avoir les 5 dernières sauvegardes :)
Si ce n'est pas « basé dans le temps », quelle est votre définition du « dernier 5 »? –
@dogbane merci, mais la solution @MartinStettner semble être une solution plus élégante :) – Lito
@David Ajouté un commentaire dans la publication principale. – Lito