Sur un système Linux, les propriétés d'un fichier dans le gestionnaire de fichiers n'affichent que des informations sur la date du dernier accès au fichier et la date de modification. Mais la date de création n'y figure pas. Il est parfois nécessaire de la consulter, par exemple pour savoir quand le journal a été enregistré. Dans cette instruction, nous allons vous expliquer comment voir quelles données sont stockées dans les systèmes de fichiers Linux et comment trouver la date de création d'un fichier Linux. Deux méthodes pratiques seront mentionnées immédiatement, chacune ayant ses propres particularités.
La norme POSIX ne spécifie que trois types d'horodatage qu'un système de fichiers doit stocker :
C'est pourquoi, dans les anciens systèmes de fichiers, il est souvent impossible d'obtenir des informations sur la date de création du fichier. Mais dans les systèmes de fichiers modernes (ext4, zfs, XFS, etc.), ces informations sont déjà stockées.
Les données relatives à la date de création sont enregistrées dans un champ spécial :
Il existe deux méthodes pour afficher ces informations : stat et debugfs. Cependant, la première méthode ne convient pas aux utilisateurs de toutes les distributions Linux. La seconde méthode est universelle, mais n'est pas si facile à utiliser. Nous allons traiter chacune d'entre elles séparément.
L'utilitaire stat affiche des informations détaillées sur un fichier. Il affiche notamment la date de création du fichier Linux. Pour le lancer dans le terminal, il suffit de spécifier le chemin d'accès au fichier. Par exemple, examinons les informations relatives à l'image pic_1.jpeg
stockée dans le catalogue /home/root-user/Pictures
:
$ stat /home/root-user/Pictures/pic_1.jpeg
Les informations nécessaires sont enregistrées dans la colonne Created. Et en utilisant l'option -c, vous pouvez définir certaines règles de formatage pour la sortie des informations, par exemple en ne laissant que la colonne nécessaire :
$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg
Mais il y a une petite difficulté. Sur certaines distributions Linux, ce champ sera vide lors de l'utilisation de l'utilitaire stat.
La raison principale est que la sortie est affichée dans statx(2). L'interpréteur de commandes a été ajouté à la bibliothèque glibc dans la version 2.28. C'est-à-dire que la prise en charge de cet interpréteur de commandes est apparue dans l'ensemble des utilitaires système de base GNU coreutils 8.31. Pour vérifier la version, exécutez la commande suivante :
$ stat --version
Par conséquent, stat
ne pourra produire des données sur la création de fichiers que si les conditions spécifiques décrites ci-dessus sont réunies. Par exemple, dans la distribution Ubuntu 21.10, tout fonctionne sans problème, mais dans Ubuntu 20.04, le champ sera vide.
L'utilitaire DebugFS n'est soumis à aucune restriction de version. Il fonctionnera toujours. Mais sa procédure d'utilisation est un peu plus compliquée. En effet, pour afficher la date de création d'un fichier via debugfs, vous devez connaître son numéro d'inode et son système de fichiers. Pour obtenir l'inode, utilisez la commande ls
avec l'option -i
, en spécifiant le chemin d'accès au fichier :
$ ls -i /home/root-user/scripts/main_script.txt
Pour visualiser le système de fichiers, la commande df
sera utile :
$ df /home/root-user/scripts/main_script.txt
Maintenant que vous disposez de toutes les données nécessaires, vous pouvez passer à l'utilitaire debugfs. Vous devez lui passer l'option -R
, spécifier le numéro d'inode
et le nom du système de fichiers :
$ sudo debugfs -R 'stat <28>' /dev/sda5
Ensuite, vous pourrez trouver dans le terminal le champ où est stockée la date de création. Dans notre cas, il s'agit de crtime.
Ceci complète les instructions.