#1 Le 15/02/2017, à 08:54
- remi82
Suppression des fichiers d'une année
Bonjour,
Je souhaite supprimer tous les fichiers d'une année.
Je connaissais la syntaxe suivante pour supprimer par exemple les fichiers de plus de 30 jours :
find /home/ -type f -mtime +30 -print0 | xargs -r0 rm
En cherchant, j'ai trouvé la commande suivante, permettant de lister tous les fichiers d'une année précise :
find /home/ -type f | awk '$(NF-1) ~ /'"$date_a_sup"'/ {print $0}'
Ce code fonctionne. "date_a_sup" étant une variable. Je me suis dit que tout simplement, j'allais ajouté "| xargs -r0 rm"
Soit :
find /home/ -type f | awk '$(NF-1) ~ /'"$date_a_sup"'/ {print $0}' | xargs -r0 rm
Mais la commande me retourne l'erreur suivante : xargs: ligne de paramètres trop longue
J'ai beau chercher, je ne trouve pas encore la solution.
Merci par avance.
Hors ligne
#2 Le 15/02/2017, à 11:25
- remi82
Re : Suppression des fichiers d'une année
J'ai trouvé,
J'utilise la première commande en écrivant le résultat dans un fichier.
Puis je fais une boucle pour lire chaque ligne, et ainsi supprimer mes fichiers.
Hors ligne
#3 Le 15/02/2017, à 12:12
- maxire
Re : Suppression des fichiers d'une année
Salut,
Pour supprimer tous les fichiers de l'année 2016 (année bissextile) tu peux aussi tenter:
find $HOME -type f -mtime +36 -mtime -402 -exec rm {} \;
15 février = 36eme jour de l'année 402=36+366
et pour l'année 2015
find $HOME -type f -mtime +402 -mtime -767 -exec rm {} \;
C'est plus lourd que de mettre l'année à supprimer mais il est possible de calculer les bornes à utiliser et de générer la commande find...
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#4 Le 15/02/2017, à 17:45
- remi82
Re : Suppression des fichiers d'une année
Bonjour Maxire,
Merci pour ton retour. Je vais garder ma solution. Mais je garde précieusement la tienne.
Encore merci
Hors ligne
#5 Le 15/02/2017, à 18:15
- pingouinux
Re : Suppression des fichiers d'une année
Bonjour,
Tu peux aussi faire quelque chose dans ce genre (après avoir vérifié que tu sélectionnes les bons fichiers) :
find /home/ -type f -mtime +30 -delete
Hors ligne