Trier des fichiers selon une date avec FIND

Trier des fichiers selon une date avec FIND

I. Présentation

Dans ce tutoriel, nous allons apprendre à tirer et à agir sur des fichiers et des dossiers selon une date. Cela pourra être leur date de création, de modification ou de dernier accès. Nous pourrons effectuer plusieurs actions sur ces données une fois que nous saurons les trier.

II. Les options FIND

Pour ce faire, nous allons nous aider de la commande « find » qui sert à lister et trier des fichiers selon certaines options. Nous pouvons en effet avec FIND définir le nom ou une partie du nom de ce que nous cherchons ( option « -name < >« ), définir sur combien de niveau (arborescence) on souhaite chercher ( option « -maxdepth < >« ), depuis où, etc …
Par exemple si nous souhaitons chercher toutes les archives faites dans le dossier « /var/log » qui sont plus âgées que 5 jours :

find /var/log/ -maxdepth 3 -name "*gz*" -ctime +5

Explication :

  • « /var/log » : indique le répertoire ou nous allons chercher. Nous aurions aussi pu indiquer « . » pour spécifier le répertoire où nous nous trouvons.
  • « name « *tar* » » : Permet de nous afficher tous les fichiers qui possèdent « tar » dans leur nom. On s’aide des « * » qui nous permettent de dire « tout à partir du moment ou il y a tar ».
  • « maxdepth 3 » : permet d’indiquer que nous allons descendre dans les arborescences sur trois niveaux. Le trois à été choisi car on descend rarement plus de 3 niveaux dans les logs mais cela peut être plus où peut ne pas être indiqué pour descendre au maximum.
  • « ctime +5 » : c’est l’option la plus intéressante, avec celle-ci nous n’affichons que les données dont la création est plus vieille que 5 jours.

Avec cette dernière option, nous pouvons trier les fichiers selon la date, mais il existe d’autres options :

  • « ctime » pour « creation time » : permet de n’afficher que les fichiers dont la création est plus ou moins vieille que le nombre de jour donné.
  • « atime » pour « access time » : permet de n’afficher que les fichiers dont le dernier accès est plus ou moins vieux que le nombre de jour donné
  • « mtime » pour « modification time« : permet de n’afficher que les fichiers dont la dernière modification est plus ou moins vieille que le nombre de jour donné

Sur ces trois options, nous pouvons spécifier un nombre de jours précédé d’un « + » pour « plus vieux que X jours » ou un «  » pour spécifier « moins vieux que« .

Quelques exemples :

Pour lister les fichiers qui ont été modifiés il y a moins de trois jours :

find -mtime -3

Pour lister les fichiers qui ont été ouverts (lus) il y a plus de 20 jours :

find -atime +20

On peut bien entendu combiner l’une des trois options avec les autres options vues un peu plus tôt dans le tutoriel.

III. Supprimer les fichiers

Maintenant que nous savons lister les fichiers, nous voulons agir sur les fichiers que nous avons trouvés avec la même ligne de commande. On peut pour cela ajouter « -exec « . Par exemple si nous souhaitons supprimer les archives qui date de plus de 30 jours dans le dossier « /var/log »

find /var/log/ -maxdepth 3 -name "*gz*" -ctime +30 -exec rm -f  \;
  • «  » permet d’afficher le nom du fichier trouvé à la place de ces deux accolades.
  • « \; » : permet de terminer la commande proprement

Nous sommes libre d’effectuer la commande que l’on souhaite après le « -exec« .

Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca

À propos Santana

Analyste en cybersécurité avec 5 ans d'expérience dans la protection des systèmes d'information contre les menaces et les attaques. Expertise dans la surveillance des réseaux, l'analyse des vulnérabilités, et la gestion des incidents de sécurité. Passionnée par l'innovation technologique et la mise en œuvre de solutions de sécurité robustes pour protéger les données sensibles et assurer la conformité réglementaire.

Vérifiez également

Script Bash - Générer des nombres aléatoires sous Linux

Script Bash – Comment générer des nombres aléatoires sous Linux ?

Table de Matieres1 I. Présentation2 II. Utiliser la variable $RANDOM pour les nombres aléatoires3 III. …

Script Bash - Affecter le résultat d'une commande à une variable

Bash : comment stocker le résultat d’une commande dans une variable ?

I. Présentation Dans ce tutoriel, nous allons apprendre à stocker le résultat d’une commande Linux …

Linux : comment renommer son terminal ?

Linux : comment renommer son terminal ?

Table de Matieres1 I. Présentation2 II. Prérequis3 III. Utiliser le terminal Mate4 IV. Fonction custom …

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.