La dernière fois j’avais besoin de supprimer des fichiers de mon serveurs Linux de backup mais en triant selon le nombre de jours d’ancienneté. J’ai trouvé une solution simple et je vous la partage donc aujourd’hui.
Utiliser find et rm pour trouver et supprimer
C’est là que la commande find vient à notre rescousse:
find /path/to/files* -mtime +30 -exec rm {} \;
Et hop, find va chercher tous les fichiers/dossiers dans /path/to/files datant de plus de 30 jours pour ensuite exécuter un rm dessus. Si vous voulez supprimer les dossiers, n’oubliez pas l’option -rf. Et faites attentions aux espaces entre rm, {} et \; qui sont importants.
Explication de la commande:
- Le 1er argument est le chemin dans lequel on veut chercher les fichiers à supprimer. On peut évidemment y ajouter une wildcard (*)
- Le 2ème argument, “-mtime”, est là pour spécifier sur quelle ancienneté, en jours, on veut filtrer les fichiers et dossiers trouvés. Si vous entrez +30 cela trouvera tous les fichiers de plus de 30 jours. On peut également utiliser “-30” pour trouver les fichiers de moins de 30 jours et juste “30” pour trouver les fichiers modifiés il y a exactement 30 jours.
- Le 3ème argument, “-exec”, vous permet d’exécuter une commande sur les résultats trouvés. Ici, on les supprime avec “rm”. Mais on aurait très bien pu faire un “cat” ou un “ls”. Le “{} \;” est obligatoire en fin de commande
Récapitulatif des options principales de find
Il y a d’autres options pour find qui peuvent être très utiles. Voilà la liste des options principales de find:
- -name : pour rechercher par nom de fichier
- -type : pour rechercher par type de fichier
- -user : pour rechercher par propriétaire
- -group : pour rechercher par groupe
- -size : pour rechercher par taille
- -atime : pour rechercher par date de dernier accès
- -mtime : pour rechercher par date de dernière modification
- -ctime : pour rechercher par date de création
- -perm : pour rechercher par permissions
- -links : pour rechercher par nombre de liens au fichier
Plus d’infos sur la commande find : http://www.linux-france.org/article/memo/node126.html