У системі Linux у властивостях файлу файлового менеджера відображається тільки інформація про дату останнього звернення до нього і дату зміни. Але ось дата створення там відсутня. При цьому іноді потрібно подивитися саме її, наприклад, щоб дізнатися, з якого моменту ведеться запис лога. У цій інструкції розповімо, як подивитися, які дані зберігаються у файлових системах Linux і пояснимо, як дізнатися дату створення файлу Linux. Буде згадано одразу ж два зручних способи, кожен з яких зі своїми особливостями.
У стандарті POSIX прописано тільки 3 види тимчасових міток, які має зберігати файлова система:
Тому в старих файлових системах подивитися інформацію про дату створення файлу часто неможливо. А ось у сучасних файлових системах (ext4, zfs, XFS тощо) вона вже зберігається.
Дані про дату створення записуються в спеціальному полі:
Відомо дві методики перегляду цієї інформації: за допомогою утиліти stat та debugfs. Однак перший метод підійде користувачам не кожного дистрибутивів Linux. Другий спосіб - універсальний, але не такий простий у використанні. Розберемося з кожним із них окремо.
Утиліта stat виводить докладні відомості про файл. Зокрема виводиться дата створення файлу Linux. Для її запуску в терміналі достатньо вказати шлях до файлу. Для прикладу подивимося інформацію про зображення pic_1.jpeg, що зберігається в каталозі /home/root-user/Pictures:
$ stat /home/root-user/Pictures/pic_1.jpeg

Необхідна інформація записана в графі Створено. А за допомогою опції -c вийде задати певні правила форматування для виведення інформації, наприклад, залишивши тільки потрібну графу:
$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg

Але є одна невелика складність. На деяких дистрибутивах Linux під час використання утиліти stat це поле буде порожнім.

Основна причина полягає в тому, що інформація, яку виводять, відображається в statx(2). Оболонка була додана до бібліотеки glibc версії 2.28. Тобто підтримка цієї оболонки з'явилася в наборі базових системних утиліт GNU coreutils 8.31. Щоб перевірити версію, слід виконати таку команду:
$ stat --version

Отже, stat зможе виводити дані про створення файлу лише за наявності конкретних умов, які були описані вище. Наприклад, у дистрибутиві Ubuntu 21.10 все працює без будь-яких проблем, а в Ubuntu 20.04 поле буде порожнім.
Утиліта DebugFS не має обмежень за версією. Вона працюватиме завжди. Але й процедура використання у неї дещо заплутаніша. Пов'язано це з тим, що для перегляду дати створення файлу через debugfs, потрібно дізнатися номер його inode і файлову систему. Отримати inode вийде за допомогою команди ls з опцією -i, вказавши шлях до файлу:
$ ls -i /home/root-user/scripts/main_script.txt

Для перегляду файлової системи знадобиться команда df:
$ df /home/root-user/scripts/main_script.txt

Тепер усі потрібні дані зібрано, і можна переходити до використання утиліти debugfs. Їй потрібно передати опцію -R, вказати номер inode, а потім назву файлової системи:
$ sudo debugfs -R 'stat <28>' /dev/sda5

Після цього в терміналі ви зможете знайти поле, в якому зберігається дата створення. У нашому випадку це crtime.

На цьому інструкції завершено.