Какие файловые системы в Linux хранят время создания?


32

Существуют ли (хорошо известные, надежные) файловые системы в Linux, которые хранят время создания файлов и каталогов в таблице i-node?

Если есть, заменяется ли «измененное» время временем создания i-узла в статистическом вызове?



Там же , как представляется, способ получения времени создания файла в Linux , если файл находится на ext4 файловой системы. См .: unix.stackexchange.com/a/131347/182996
kaartic

Ответы:


16

Ext4 Файловая система делает хранить время создания. stat -c %W myfileмогу показать это вам.


6
Спасибо. В моей системе stat -c %Wвозвращается 0 (время создания неизвестно), но это другой вопрос ...
franziskus

1
Но обратите внимание, что из-за того, как файлы обрабатываются многими программами, значение времени создания может быть бесполезным .
Mattdm

15
@Legate: если текстовый редактор работает, копируя файл во временную папку, редактируя временную рабочую копию, а затем перемещая временную копию поверх оригинала при сохранении, когда время создания?
Mattdm

1
Это нужно как-то включить? Я попытался получить crtime для файла в файловой системе ext4 и получил ноль. Ранее прочитав этот пост в блоге , я тоже попробовал использовать debugfsи statобнаружил, что нет crtime. Вот мне и интересно, нужно ли его как-то включать? (FWIW я использую Arch Linux )
starfry

2
Там же , как представляется, способ получения времени создания файла в Linux. См .: unix.stackexchange.com/a/131347/182996
kaartic

30

Несколько файловых систем хранят время создания файла, хотя для этого поля нет стандартного имени:

  • ufs2 → st_birthtime
  • zfs → crtime
  • ext4 → crtime
  • btrfs → otime
  • jfs → di_otime

5
Если говорить прямо, по состоянию на 2015-03 гг. XFS не поддерживает (см. Man-страницу xfs_dbили в структуре файловой системы XFS
Франклин Пиат,

4

Насколько я знаю ext4, все файловые системы JFS и BTRFS поддерживают дополнительное поле в inode файлов для хранения времени создания, хотя названия могут отличаться.

Источник: LWN Время создания файла


//, Вам удалось это проверить? AFAIK слабоват, на мой вкус, по крайней мере.
Натан Басанезе

5
@NathanBasanese AFAIK отчитывался перед JFS и BTRFS. Для ext4 да, это поддерживает. Проверьте debugfsкоманду stat. Пример: вам нужно указать устройство, на котором смонтирована файловая система ext4 (например, / dev / sda3), и вам нужно получить номер индексного файла в этой файловой системе (используйте ls -i, скажем, 42000 - это номер), затем просто наберите: debugfs -R 'stat <42000>' /dev/sda3, Запустите это как root или с достаточными правами. Ищите crtimeполе, вот оно. Для JFS и BTRFS вам нужно найти эквивалентную команду debugfs ...
Гюйгенс,

// НИИЦ. Я пытался $ ls -i | grep dump.rdb 656376 dump.rdb и $ sudo debugfs -R 'stat <656376>' / dev / sda2, но я думаю, что там пока нет ext4. Если я попробую это на ext4, скажу так.
Натан Басанезе

@NathanBasanese Вы можете сделать, df -Tчтобы получить тип раздела или просто набрать mount. Убедитесь, что файл inode принадлежит правильному разделу. Иноды являются (по своей природе) специфичными для раздела.
Гюйгенс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.