J'ai utilisé la commande ci-dessous pour supprimer des fichiers de plus d'un an.
find /path/* -mtime +365 -exec rm -rf {} \;
Mais maintenant, je veux supprimer tous les fichiers dont l'heure modifiée est antérieure au 01 janvier 2014
Comment le faire sous linux.
Vous pouvez toucher votre horodatage en tant que fichier et l'utiliser comme point de référence:
par exemple. pour le 1er janvier 2014:
touch -t 201401010000 /tmp/2014-Jan-01-0000
find /path -type f ! -newer /tmp/2014-Jan-01-0000 | xargs rm -rf
cela fonctionne parce que find
a un -newer
commutateur que nous utilisons.
De man find
:
-newer file
File was modified more recently than file. If file is a symbolic
link and the -H option or the -L option is in effect, the modification time of the
file it points to is always used.
Cela fonctionne pour moi:
find /path ! -newermt "YYYY-MM-DD HH:MM:SS" | xargs rm -rf
find ~ -type f ! -atime 4|xargs ls -lrt
Cela répertoriera les fichiers auxquels vous avez accédé plus de 4 jours, en recherchant à partir du répertoire personnel.
La réponse acceptée pollue le système de fichiers et se retrouve à supprimer. nous n'avons donc pas à diriger les résultats vers xargs, puis à émettre un rm. Cette réponse est plus efficace
find /path -type f -not -newermt "YYYY:MM:DD HH:MI:SS" -delete