• Home  / 
  • Linux
  •  /  Supprimer des fichiers selon leur ancienneté sur Linux

Supprimer des fichiers selon leur ancienneté sur Linux

By KrustyHack / last year
Logo Linux

Ay à toutes et à tous,

Petit billet ajourd’hui plutôt court car j’ai pas mal de projet en ce moment. La dernière fois j’avais besoin de supprimer des fichiers de mon serveurs 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:

root@KrustyKali:~# find /your/path -mtime +30 -exec rm {} \;

Et bim find va chercher tous les fichiers/dossiers dans /your/path 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

Leave a comment: