Modifier: Comme indiqué dans les commentaires, tar
modifie les paramètres mtime et ctime des fichiers extraits pour qu'ils correspondent aux dates de l'archive, de sorte que cette première méthode ne fonctionnera pas à moins que -m
drapeau a été utilisé lors de l'extraction. La dernière méthode est optimale, mais peut entraîner la suppression des fichiers souhaités en cas de collision des noms de fichiers.
find
soutient un -newer
file
flag, en spécifiant qu'il devrait trouver les fichiers plus récents que fichier . touch
a un argument -t pour modifier le temps d'accès / de modification d'un fichier. Donc, pour réparer un problème rencontré autour de 19:25:30:
$ tar xzf whoops.tar.gz
$ touch -t 200909261925.30 whoops-timestamp
$ find . -newer whoops-timestamp
Et si vous êtes sûr que les bons fichiers sont affichés:
$ find . -newer whoops-timestamp -print0 | xargs -0 rm -v
Une alternative consiste à supprimer tous les fichiers répertoriés dans l'archive que vous venez d'extraire:
$ tar tfz whoops.tar.gz | xargs rm -v
tar
conservera les dates des archives sauf si vous utilisez le-m
drapeau. Donc, la première méthode ne fonctionnera pas en règle générale.Une autre alternative avec find:
où +30 est le nombre de jours que vous souhaitez conserver.
la source