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

32

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

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

Franziskus
источник
1
Смотрите также Как мне сделать ls, а затем отсортировать результаты по дате создания?
Жиль "ТАК - перестань быть злым"
Там же , как представляется, способ получения времени создания файла в 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
jlliagre
источник
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 принадлежит правильному разделу. Иноды являются (по своей природе) специфичными для раздела.
Гюйгенс