Modes de paiement Abuse

Comment afficher la date de création d'un fichier sous Linux

22.04.2022, 18:05

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.

Date de création du fichier

La norme POSIX ne spécifie que trois types d'horodatage qu'un système de fichiers doit stocker :

  • atime - heure du dernier accès au fichier.
  • mtime - heure de la dernière modification du contenu.
  • ctime - heure de la dernière modification des droits d'accès ou du propriétaire.

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 :

  • Ext4 - crtime
  • ZFS - crtime
  • XFS - crtime
  • Btrfs - otime
  • JFS - di_otime

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.

Utilisation de Stat

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

Comment afficher la date de création d'un fichier sous Linux

Mais il y a une petite difficulté. Sur certaines distributions Linux, ce champ sera vide lors de l'utilisation de l'utilitaire stat.

Comment afficher la date de création d'un fichier sous Linux

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

Comment afficher la date de création d'un fichier sous Linux

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.

Utilisation de DebugFS

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

Comment afficher la date de création d'un fichier sous Linux

Pour visualiser le système de fichiers, la commande df sera utile :

$ df /home/root-user/scripts/main_script.txt

Comment afficher la date de création d'un fichier sous Linux

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

Comment afficher la date de création d'un fichier sous Linux

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.