В свойствах файла в файловом менеджере Linux зачастую отображается только информация о дате последнего обращения к нему и дате изменения. Но вот дата создания там, к сожалению, отсутствует. А иногда нужно посмотреть именно ее, например, чтобы узнать, с какого момента ведется запись лога.
В данной статье мы расскажем о том, какие данные хранятся в файловых системах Linux и объясним, как узнать дату создания файла Linux. Будут упомянуты сразу же два удобных способа, каждый из которых со своими особенностями.
Содержание статьи
Дата создания файла Linux
В стандарте POSIX прописаны только 3 вида временных меток, которые должна хранить файловая система:
- atime – время последнего обращения к файлу.
- mtime – время последнего изменения содержимого.
- ctime – время последней модификации прав доступа или владельца.
По этой причине в старых файловых системах посмотреть информацию о дате создания файла зачастую невозможно. А вот в современных файловых системах (ext4, zfs, XFS и т. д.) она уже сохраняется.
Данные о дате создания записываются в специальном поле:
- Ext4 – crtime
- ZFS – crtime
- XFS – crtime
- Btrfs – otime
- JFS – di_otime
Есть два удобных способа просмотра этой информации: с помощью утилиты stat и debugfs. Но первый способ подойдет не для всех дистрибутивов Linux. Второй способ – универсальный, но не такой простой в использовании. Разберемся с каждым из них по отдельности.
1. С помощью stat
Утилита 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 поле будет пустым.
Подробности о работе утилиты stat, ее синтаксисе, опциях и примеры использования описаны в отдельной статье. Можете с ней ознакомиться.
2. С помощью debugfs
В отличие от утилиты stat, описанной в предыдущем разделе, у 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.
Подробное разъяснение о том, что такое inode, есть в специальной статье на нашем сайте.
Выводы
Мы разобрали два способа посмотреть дату создания файла Linux. Утилита stat несколько более удобная, ведь для нее достаточно указать только путь к нему. Но она не будет отображать нужную информацию до версии 8.31 GNU coreutils. А debugfs в этом плане более универсальная, но не такая простая в использовании. Ведь для получения данных она требует ввода номера inode файла и его файловую систему.
Если вы искали альтернативу почтовому сервису Gmail, который уважает вашу конфиденциальность, обратите внимание на ProtonMail. Ваши письма автоматически шифруются сквозным шифрованием, поэтому читать их можете только вы и получатель. ProtonMail не собирает ваши персональные данные и базируется в Швейцарии, где действуют одни из самых строгих законов о конфиденциальности. Посмотреть детали












Какие есть варианты в 20.04 узнать дату создания без sudo? Писать заранее свой логгер? Поможет предварительаня установка системы на btrfs или xfs?
Доброе время суток.
Скажите, пожалуйста, как можно объяснить дату модификации файла раньше даты его создания на первом снимке экрана?