[supression fichier] en fonction de la date

Fermé
Laurent - 16 avril 2005 à 16:25
 Laurent - 16 avril 2005 à 20:43
Bonjour,

J'essaie de trouver comment je pourrais supprimer des fichiers avec la commande rm ou similaire en fonction du nom de fichier bien entendu mais aussi en fonction de la date. C'est posible ?
par exemple supprimer tous les fichiers crée entre le 10 avril 2004 et le 10 avril 2005 dans un repertoire donné..

Merci de votre aide.

Laurent
A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
16 avril 2005 à 20:39
Salut,

Alors il doit bien y avoir plusieurs façons d'arriver à faire ça, en voici une.

Donc tu crées 2 fichiers correspondants aux dates "buttoirs" fixées :
touch -d 2004-04-10 10avril2004
touch -d 2005-04-10 10avril2005
"man touch" pour d'avantages d'explications. La méthode est basée sur la comparaison sur les dates des fichiers à l'aide des opérateurs "-ot" (older than) et "-nt" (newer than).

À partir de là, tu listes ton répertoire et tu testes si chaque fichier fait parti de l'intervalle comme ceci :
for fich in `ls`; do if [ "$fich" -ot "10avril2005" ] && [ "$fich" -nt "10avril2004" ]; then rm -i "$fich"; fi ; done
Fait des tests avant en remplaçant "rm -i" par "echo".
Si ça correspond à tes attentes, tu pourras alors remettre la commande "rm", agrémentée du paramètre "-f" (pas d'interrrogation avant suppression, mais attention... )
0
Merci, tres sympa de ta part ... avec ça je devrais m'en sortir !!
Un grand merci !!

Laurent
0