[supression fichier] en fonction de la date
Laurent
-
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
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:
- [supression fichier] en fonction de la date
- Fichier .dat - Guide
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fonction si et - Guide
2 réponses
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 :
À partir de là, tu listes ton répertoire et tu testes si chaque fichier fait parti de l'intervalle comme ceci :
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... )
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 ; doneFait 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... )