13 avril 2025

Krusell France

Ta dose d'actu digital !

Comment trier des fichiers par date sous Linux avec la commande find

Linux - Rechercher des fichiers selon une date avec find
Rate this post

Dans ce tutoriel, nous allons voir comment trier des fichiers en fonction d’une date à l’aide de la commande find sous Linux.

Présentation

Find est une commande native aux systèmes UNIX (elle fait partie de la norme POSIX). Il s’agit d’une commande très utile lorsque l’on utilise souvent le terminal, puisqu’elle permet de rechercher des fichiers et des dossiers à travers tout le système en fonction de différents critères.

Cette commande comporte de nombreuses options de filtrage et recherche. Nous allons ici nous concentrer sur la recherche en fonction d’une date, qui peut être la date de dernière modification ou d’accès d’un fichier ou d’un dossier. Ce type de recherches sont notamment utiles lorsque l’on dispose de nombreux fichiers (typiquement, des journaux) ou que l’on cherche à investiguer sur une période définie (avant ou après un évènement).

Les attributs avancés des fichiers et dossiers

Sous Linux, tous les fichiers et dossiers possèdent des attributs. Certains sont très connus comme le type (fichier, socket, dossier, lien symbolique, etc.), les permissions (comme rwxrwxr-x), la date de dernière modification, le propriétaire et le groupe propriétaire. Ces attributs sont notamment affichés lorsque l’on utilise l’option -a de la commande ls.

Mais, il existe d’autres attributs, généralement moins connus. Parmi ceux-ci, la date de dernier accès ou encore le numéro inode. Ces informations peuvent être listées grâce à la commande stat.

Maintenant que nous savons que ces attributs modification et accès existent, nous allons voir comment les utiliser dans un filtre via la commande find.

La syntaxe de la commande find

Une recherche classique avec la commande find peut ressembler à celle-ci :

find /home/mickael/ -type f -name *.txt

Cette commande me permet de rechercher tous les fichiers finissant par .txt dans le répertoire /home/mickael. Concernant les options de filtrage temporel, nous avons la possibilité de rechercher les fichiers modifiés ou accédés après un certain nombre de jours, avant un certain nombre de jours et il y a précisément un certain nombre de jours. Cela grâce aux notations suivantes : +N : plus de N jours, -N : moins de N jours, N : exactement N jours.

Rechercher des fichiers en fonction de la date de modification

Nous pouvons également effectuer des recherches en fonction de la date de dernière modification d’un fichier. Cela est très utile notamment pour savoir si une configuration a été modifiée récemment et peut faire partie du contrôle d’intégrité d’un fichier. Nous allons alors utiliser l’option -mtime, par exemple, pour afficher les fichiers modifiés il y a plus de 30 jours (1 mois).

À l’inverse, si ce sont les fichiers créés il y a moins d’un mois qui m’intéressent.

Rechercher des fichiers en fonction de la date d’accès

Nous pouvons aussi utiliser un filtre en fonction de la date de dernier accès d’un fichier à l’aide de l’option -atime.

À l’inverse, si ce sont les fichiers créés il y a moins d’un jour qui m’intéressent.

L’option atime pour “access time”, permet de n’afficher que les fichiers dont le dernier accès (lecture) est plus ou moins ancien que le nombre de jours donné.

Filtrer par minutes plutôt que par heure

Dans mon dernier exemple, nous utilisons la valeur minimale qu’il est possible d’utiliser pour les options atime et mtime, c’est-à-dire 1 jour. Cependant, il peut parfois être utile de vouloir filtrer sur des échelles de temps plus petites, comme la minute.

La commande find contient des options permettant de faire cela, elles sont en réalité les mêmes que vues précédemment, à l’exception qu’il faut remplacer le mot time par min :

Rechercher en fonction d’une heure précise

Si vous connaissez l’heure et la date précises qui vous intéressent, ou même la fourchette de temps, il est possible de l’utiliser comme filtre de recherche. Si la recherche doit être effectuée à une heure précise, nous pouvons utiliser -newerXt avec une date et une heure.

Les options sont ici très similaires, mais notez bien les subtiles différences qui permettent de différencier le changement de métadonnées, modifications et accès (fin de l’option en at, ct ou mt).

Conclusion

Toutes ces options font de la commande find un outil très puissant. Les connaître et les maitriser permet dans bien des cas d’éviter de faire un script ou d’installer des outils tiers. Les options de filtrage temporel que nous venons de voir peuvent bien sûr être utilisées en combinaison avec les autres options de la commande find.

Enfin, il est important de garder à l’esprit que les attributs avancés des fichiers peuvent être modifiés manuellement, ce qui signifie qu’ils ne sont pas toujours fiables à 100 %. Cette considération est importante dans le domaine de la cybersécurité, où la manipulation de ces attributs peut être utilisée pour dissimuler des activités malveillantes.

Je vous recommande de vous intéresser aux options avancées de find en plus de ce que nous venons de voir ! N’hésitez pas à partager votre avis sur ce tutoriel dans les commentaires à sur notre serveur Discord.

Source : www.it-connect.fr

  • julien castex redacteur tech

    Julien est un journaliste tech polyvalent avec une expérience couvrant divers aspects de la high tech, en passant par les smartphones et l'Intelligence Artificielle. Il écrit sur les dernières tendances technologiques, les startups et les projets innovants ainsi que les impacts de la technologie sur la société.

    Voir toutes les publications