Je veux connaître la date de création d'un fichier particulier, pas la date de modification ou la date d'accès.
J'ai essayé avec ls -ltrh et stat filename .
Réponse acceptée :
stat -c '%w' file sur les systèmes de fichiers qui stockent l'heure de création.
Notez que sous Linux, cela nécessite coreutils 8.31, glibc 2.28 et noyau version 4.11 ou plus récent.
La norme POSIX ne définit que trois horodatages distincts à stocker pour chaque fichier :l'heure du dernier accès aux données, l'heure de la dernière modification des données et l'heure à laquelle l'état du fichier a changé pour la dernière fois.
Les systèmes de fichiers Linux modernes, tels que ext4, Btrfs, XFS (v5 et versions ultérieures) et JFS, stockent l'heure de création du fichier (c'est-à-dire l'heure de naissance), mais utilisent des noms différents pour le champ en question (crtime en ext4/XFS, otime dans Btrfs et JFS). Linux fournit l'interface d'appel système statx(2) pour récupérer l'heure de naissance du fichier pour les systèmes de fichiers qui la prennent en charge depuis la version 4.11 du noyau. (Ainsi, même lorsque la prise en charge du temps de création a été ajoutée à un système de fichiers, certains noyaux déployés ne l'ont pas immédiatement pris en charge, même après avoir ajouté la prise en charge nominale de cette version du système de fichiers, par exemple XFS v5.)
Comme l'ont souligné Craig Sanders et Mohsen Pahlevanzadeh, stat prend en charge le %w et %W spécificateurs de format pour afficher l'heure de naissance du fichier (respectivement dans un format lisible par l'homme et en secondes depuis Epoch) avant coreutils version 8.31. Cependant, coreutils stat utilise le statx() appel système si disponible pour récupérer l'heure de naissance uniquement depuis la version 8.31.
Avant coreutils version 8.31 stat accédé à l'heure de naissance via get_stat_birthtime() fourni par gnulib (dans lib/stat-time.h ), qui obtient l'heure de naissance à partir de st_birthtime et st_birthtimensec champs de la stat structure retournée par le stat() appel système. Alors que par exemple les systèmes BSD (et en extension OS X) fournissent st_birthtime via stat , pas Linux. C'est pourquoi stat -c '%w' file sorties - (indiquant une heure de création inconnue) sous Linux avant coreutils 8.31 même pour les systèmes de fichiers qui stockent l'heure de création en interne.
Comme le souligne Stéphane Chazelas, certains systèmes de fichiers, tels que ntfs-3g, exposent les temps de création de fichiers via des attributs de fichiers étendus.