Які файлові системи в 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
Це потрібно якось увімкнути? Я спробував отримати строк для файлу у файловій системі ext4 і отримав нуль. Раніше прочитавши цю публікацію в блозі , я також спробував використовувати debugfsі statвиявив, що немає crtime. Тож мені цікаво, чи потрібно це якось увімкнути? (FWIW я використовую Arch Linux )
starfry

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

30

Кілька файлових систем зберігають час створення файлу, хоча для цього поля немає стандартної назви:

  • ufs2 → st_birthtime
  • zfs → crtime
  • ext4 → тривалість
  • btrfs → otime
  • jfs → di_otime

5
Якщо бути ясним, станом на 2015-03, XFS не підтримує (див. xfs_dbСторінку або в структурі файлової системи XFS
Franklin Piat

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 вам потрібно знайти еквівалентну команду налагодження ...
Huygens

//, NIIICE. Я спробував $ 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.