Le noyau Linux a eu un xstat(2)
L'appel au système est en cours depuis plusieurs années. David Howells de RedHat a fait une grande partie du travail. xstat(2)
permet de récupérer l'heure de création (parfois rebaptisée "heure de naissance" ou "heure de naissance" dans le monde Linux et BSD sans raison valable) des fichiers à partir de plusieurs systèmes de fichiers qui le supportent, y compris EXT4 (qui a un horodatage de création sur le disque) et CIFS (qui, avec son héritage DOS/OS/2/Windows, a supporté un horodatage de création comme citoyen de première classe depuis des décennies). M. Howells a travaillé sur les correctifs CIFS qui accompagnent l'appel système.
OpenSolaris et les BSDs ont effectivement un système de st_birthtim
dans leur stat(2)
et cette fonctionnalité est accessible aux auteurs de script via des programmes d'application tels que find
y ls
. Sur le serveur OpenSolaris ls
vous trouverez crtime
à côté de atime
, mtime
y ctime
à plusieurs endroits. De la même manière, le système FreeBSD find
Le commandement a -Bmin
, -Bnewer
y -Btime
primaires. Et le système Mac OS ls
a un -U
option.
Si vous écriviez votre script pour OpenSolaris, les BSDs, ou Mac OS 10, vous pourriez simplement continuer à faire ce que vous voulez avec les temps de création dès maintenant. En effet, si vous écriviez pour Windows, vous pourriez faire de même. Cygwin a supporté st_birthtim
depuis 2007 ce qui rend les programmes Win32 CreationTime
qu'il possède depuis la première version de Windows NT et que Windows NT maintient sur les volumes NTFS et FAT, à la disposition des outils Cygwin.
Cependant, il n'en va pas de même dans le monde de GNU Linux. La fonction de temps de création n'a pas encore été introduite dans GNU coreutils ls
ou à GNU findutils find
. En effet, il ne fait même pas encore partie du noyau Linux classique. Une partie du problème est que le xstat(2)
s'est enlisé dans une diversion où les gens voulaient garder trois timestamps, au lieu d'en avoir quatre comme dans l'API du noyau de Windows NT, et décharger ctime
pour le remplacer par crtime
.
La réponse de Linus Torvalds en 2010 était que "tout cela est totalement inutile et les gens ne peuvent même pas se mettre d'accord sur un nom" et "attendons cinq ans".
En fait, comme je soupçonne la plupart des personnes qui lisent ceci de le savoir, le monde s'accorde largement sur le nom "temps de création" depuis les années 1980 et nous attendons depuis au moins 25 ans déjà. C'est le nom utilisé dans OS/2 1.0 ; c'est le nom utilisé dans VMS ODS-1 ; c'est le nom utilisé dans Windows NT 3.5 ; c'est le nom utilisé dans SMB ; et c'est le nom utilisé dans la question. ☺
Autres lectures