Comme dans le sujet: J'aimerais supprimer les fichiers d'un répertoire qui ont été modifiés dans une plage de dates particulière. Comment puis-je faire ceci ?
La commande GNU find
est la voie à suivre. Par exemple, pour supprimer tous les fichiers du répertoire en cours du 1er au 5 août, vous pouvez utiliser la commande suivante
find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete
Il est préférable d'exécuter la commande sans l'action -delete
, tout d'abord, pour afficher la liste des fichiers intéressés (un bon substitut pourrait être -ls
produisant une liste de type ls).
Le retrait de la spécification -maxdepth 1
traversera également tous les sous-répertoires.
Vous pouvez également spécifier des heures, par exemple
find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
! -newermt '2011-08-06 23:01:00' -delete
Soyez averti de ne pas supprimer les guillemets simples, qui protègent les espaces entre la date et l'heure.
Le caractère !
est une négation, il convient de le lire: plus récent que cette date mais pas plus récent que cette autre date.