web-dev-qa-db-fra.com

Comment supprimer des fichiers modifiés entre des dates particulières?

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 ?

11
Patryk

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.

17
enzotib