Il existe 3 types d'"horodatages" :
- Accès - la dernière fois que le fichier a été lu
- Modifier - la dernière fois que le fichier a été modifié (le contenu a été modifié)
- Modifier :la dernière fois que les métadonnées du fichier ont été modifiées (par exemple, les autorisations)
Pour afficher ces informations, vous pouvez utiliser stat
qui fait partie des coreutils.
stat
vous montrera également plus d'informations comme l'appareil, les inodes, les liens, etc.
N'oubliez pas que ce type d'informations dépend fortement du système de fichiers et des options de montage. Par exemple si vous montez une partition avec le noatime
option, aucune information d'accès ne sera écrite.
Un utilitaire pour changer les horodatages serait touch
.Il y a quelques arguments pour décider quel horodatage changer (par exemple -a pour l'heure d'accès, -m pour l'heure de modification) et pour influencer l'analyse d'un nouvel horodatage donné.Voir man touch
pour plus de détails.
touch
peut devenir pratique en combinaison avec cp -u
("copier uniquement lorsque le fichier SOURCE est plus récent que le fichier de destination ou lorsque le fichier de destination est manquant" ) ou pour la création de fichiers marqueurs vides.
La réponse d'echox est valide mais je souhaite ajouter des informations concernant l'heure de création du fichier.
Prise en charge du système de fichiers
Certains systèmes de fichiers prennent en charge une entrée supplémentaire dans l'inode concernant l'heure de création (ou l'heure de naissance). Je sais que ext4 prend en charge cette fonctionnalité ainsi que JFS et BTRFS.
Cependant, la plupart des outils et API n'ont pas encore été mis à jour pour lire ces informations supplémentaires. Donc, même s'il pourrait être là, il n'est pas accessible.
Par exemple, sur Ubuntu 12.04 LTS, j'obtiens ce qui suit pour un fichier que j'ai créé aujourd'hui :
$ echo Just another test > /tmp/mytest
$ sleep 3
$ touch /tmp/mytest
$ sleep 2
$ cat /tmp/mytest > /dev/null
$ stat /tmp/mytest
[...]
Access: 2012-06-05 13:33:44.279774711 +0200
Modify: 2012-06-05 13:33:34.611893317 +0200
Change: 2012-06-05 13:33:34.611893317 +0200
Birth: -
$ sudo debugfs -R 'stat /tmp/mytest' /dev/sda1
[...]
ctime: 0x4fcdee8e:91e30114 -- Tue Jun 5 13:33:34 2012
atime: 0x4fcdee98:42b417dc -- Tue Jun 5 13:33:44 2012
mtime: 0x4fcdee8e:91e30114 -- Tue Jun 5 13:33:34 2012
crtime: 0x4fcdee46:01258f1c -- Tue Jun 5 13:32:22 2012
[...]
Vous pouvez voir que la nouvelle fonction stat a un champ de naissance, bien que la sortie semble incorrecte. Et via debugfs, nous pouvons obtenir les informations (crtime car je suis sur le système de fichiers ext4).
prise en charge de statx
Il y a maintenant depuis le noyau 4.11 un nouvel appel système statx, en plus d'un meilleur support de Y2038 ou des systèmes de fichiers réseau, il apporte également quelques fonctionnalités supplémentaires comme le btime
ou l'accès à l'heure de naissance (heure de création). La prise en charge d'ext4 devrait être dans la même version 4.11 du noyau.
Il y a eu des correctifs pour ajouter la prise en charge de ce nouvel appel système dans les versions ultérieures du noyau :par ex. BTRFS et F2FS dans le noyau 4.13, SMB3 dans 4.14, GFS2 dans 4.15, NFS dans 4.16, etc.
La prochaine glibc fournira un appel de fonction pour interroger cette interface (voir les nouvelles de Phoronix sur le support de glibc statx). Nous pouvons donc nous attendre à ce que cette fonctionnalité soit bientôt prise en charge dans l'espace utilisateur.