В ядре Linux уже несколько лет работает системный вызов xstat(2)
. Дэвид Хауэллс из RedHat сделал большую часть работы. xstat(2)
позволяет извлекать время создания (иногда переименованное в "время рождения" или "время рождения" в мирах Linux и BSD без действительно веской причины) файлов из нескольких файловых систем, которые его поддерживают, включая EXT4 (который имеет метку времени создания на диске) и CIFS (которая благодаря своему наследию DOS/OS/2/Windows поддерживала метку времени создания как первоклассный гражданин на протяжении десятилетий). М. Хауэллс работал над патчами CIFS, которые сопровождают системный вызов.
OpenSolaris и BSD действительно имеют данные st_birthtim
в своих системных вызовах stat(2)
прямо сейчас, и эта функция доступна авторам сценариев через такие прикладные программы, как find
и ls
. На странице руководства OpenSolaris ls
вы найдете crtime
а также atime
, mtime
и ctime
в нескольких местах. Точно так же команда find
FreeBSD имеет основные цвета -Bmin
, -Bnewer
и -Btime
. А в Mac OS ls
есть опция -U
.
Если вы писали свой сценарий для OpenSolaris, BSD или Mac OS 10, вы могли бы просто заняться тем, что вы хотите сделать со временем создания прямо сейчас. Действительно, если бы вы писали для Windows, вы могли бы сделать то же самое. Cygwin поддерживает st_birthtim
с 2007 года, создавая временную метку CreationTime
Win32, которая была у него с первой версии Windows NT и которую Windows NT поддерживает на томах NTFS и FAT, доступных для инструментов Cygwin.
Однако, это не так в мире GNU Linux. Возможность времени создания еще не дошла до GNU coreutils ' ls
или GNU findutils' find
. На самом деле, это даже не часть основного ядра Linux. Частично проблема заключается в том, что системный вызов xstat(2)
увяз в диверсии, когда люди хотели сохранить три метки времени вместо четырех, как в API ядра Windows NT, и дамп ctime
чтобы заменить его на crtime
.
В 2010 году Линус Торвальдс ответил, что «все это абсолютно бесполезно, и люди даже не могут договориться об имени» и "Давайте подождем пять лет".
На самом деле, как я подозреваю, большинство людей, читающих это, будут знать, что мир широко соглашается с названием "время создания" с 1980-х годов, и мы ждали по крайней мере 25 лет. Это имя используется в OS/2 1.0; это имя используется в VMS ODS-1; это имя используется в Windows NT 3.5; это имя используется в SMB; и это имя используется в вопросе. ☺
дальнейшее чтение