[supression fichier] en fonction de la date

Laurent -  
 Laurent -
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
Configuration: redhat 7.1, serveur OVH

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  2. Laurent
     
    Merci, tres sympa de ta part ... avec ça je devrais m'en sortir !!
    Un grand merci !!

    Laurent
    0