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

Иногда вам может быть интересно узнать, когда файл был создан в системе Linux. В этом руководстве мы рассмотрим, как именно это сделать. Мы рассмотрим различные способы, с помощью которых можно узнать дату создания файла в системе Linux.
1. Проверить дату создания файла в Linux
Команда stat – это утилита командной строки, которая отображает подробную информацию о файле. Она выводит информацию, которая включает размер файла, UID (идентификатор пользователя), GID (идентификатор группы), доступ к файлу, время модификации и дату создания.
Чтобы проверить дату создания файла, просто выполните следующую команду, где sample1.txt – это имя файла
stat sample1.txt
В результате директива Birth показывает дату создания файла.

Чтобы уточнить дату создания файла, передайте -c %w аргументов, как показано на рисунке.
stat -c %w sample1.txt

Давайте внесем несколько изменений в файл, добавив содержимое с помощью команды echo.
echo "Some Text" >> sample1.txt
Просмотрев подробности файла, вы заметите, что поле Modify изменилось, указывая на то, что время модификации изменилось.

2. Отображение даты создания файла с помощью команды Debugfs
Другой способ проверки даты создания файла – это использование команды debugfs. Однако это многоэтапная операция и более сложная, чем команда stat.
Сначала нужно получить номер inode файла с помощью команды ls, показанной на рисунке.
ls -i sample1.txt

Далее, найдите раздел, в котором находится файл, с помощью команды df, показанной на рисунке
df ./sample1.txt

Наконец, выполните следующую команду debugfs, чтобы узнать дату создания файла.
sudo debugfs -R 'stat ' /dev/sda5
В поле crtime отображается время и дата создания файла.


Зарубин Иван Эксперт по Linux и Windows
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Как в linux узнать точное время создания или изменения файла (чтобы секунды показывались)?
Пробовал разные файловые менеджеры: Dolphin, Krusader, mc. Ни у одного не нашёл где включить отображение секунд.
- Вопрос задан более трёх лет назад
- 14998 просмотров
5 комментариев
Оценить 5 комментариев

Из исходного кода соберите какой-нибудь из них. 🙂
Александр @popup91 Автор вопроса
Rou1997: Я не программист чтобы искать где там у них это реализуется.
Я просто пытаюсь с винды перейти на линукс. и вот такие вопросы получаются. просто в total commander так можно, а сунулся в линукс — ну никак. казалось бы, секнды хочу посмотреть, а такой облом сразу. )))

Александр: А для чего на него переходить?
Александр @popup91 Автор вопроса
Rou1997: Хороший вопрос)) Я сам на 100% ещё не решил. Просто хотелось попробовать. Я до сих пор ещё метаюсь с мыслями переходить или нет. например сегодня утром хотел переходить, а потом подумал, что лучше не надо. потом опять думаю что лучше перейти, а вот гдето пол часа назад опять решил что переходить не буду.
Дата создания файла в Linux
В свойствах файла в файловом менеджере Linux зачастую отображается только информация о дате последнего обращения к нему и дате изменения. Но вот дата создания там, к сожалению, отсутствует. А иногда нужно посмотреть именно ее, например, чтобы узнать, с какого момента ведется запись лога.
В данной статье мы расскажем о том, какие данные хранятся в файловых системах Linux и объясним, как узнать дату создания файла Linux . Будут упомянуты сразу же два удобных способа, каждый из которых со своими особенностями.
Дата создания файла Linux
В стандарте POSIX прописаны только 3 вида временных меток, которые должна хранить файловая система:
- atime – время последнего обращения к файлу.
- mtime – время последнего изменения содержимого.
- ctime – время последней модификации прав доступа или владельца.
По этой причине в старых файловых системах посмотреть информацию о дате создания файла зачастую невозможно. А вот в современных файловых системах (ext4, zfs, XFS и т. д.) она уже сохраняется.
Данные о дате создания записываются в специальном поле:
Есть два удобных способа просмотра этой информации: с помощью утилиты stat и debugfs. Но первый способ подойдет не для всех дистрибутивов Linux. Второй способ – универсальный, но не такой простой в использовании. Разберемся с каждым из них по отдельности.
1. С помощью stat
Утилита stat выводит подробные сведения о файле. В том числе выводится дата создания файла Linux. Для ее запуска в терминале достаточно указать путь к файлу. Для примера посмотрим информацию про изображение pic_1.jpeg, хранящееся в каталоге /home/root-user/Pictures:

Нужная информация записана в графе Создан. А с помощью опции -c получится задать определенные правила форматирования для вывода информации, например, оставив только нужную графу:
stat -c ‘%w’ /home/root-user/Pictures/pic_1.jpeg

отдельной статье. Можете с ней ознакомиться.
2. С помощью debugfs
В отличие от утилиты stat, описанной в предыдущем разделе, у debugfs нет таких ограничений по версии. А значит, она будет работать всегда. Но и процедура использования у нее несколько более запутанная. Связано это с тем, что для просмотра даты создания файла через debugfs, нужно узнать номер его inode и файловую систему. Получить inode выйдет с помощью команды ls с опцией -i, указав путь к файлу:
ls -i /home/root-user/scripts/main_script.txt

А для просмотра файловой системы пригодится команда df:

Теперь все нужные данные собраны, и можно переходить к использованию утилиты debugfs. Ей нужно передать опцию -R, указать номер inode, а затем название файловой системы:
sudo debugfs -R ‘stat ‘ /dev/sda5


Подробное разъяснение о том, что такое inode, есть в специальной статье на нашем сайте.
Выводы
Мы разобрали два способа посмотреть дату создания файла Linux. Утилита stat несколько более удобная, ведь для нее достаточно указать только путь к нему. Но она не будет отображать нужную информацию до версии 8.31 GNU coreutils. А debugfs в этом плане более универсальная, но не такая простая в использовании. Ведь для получения данных она требует ввода номера inode файла и его файловую систему.
[ ls ] Как узнать время создания файла?
Я в ступоре. Мне нужно сделать простое действие — распечатать список файлов, чтобы рядом с именем файла показывалось время его создания.
Документация по ls написана для экстрасенсов, а я им не являюсь.
# man ls
.
-l Выдавать (в одноколоночном формате) тип файла, права доступа к файлу, количество ссылок на файл, имя владельца, имя группы, размер файла (в байтах), временной штамп и имя файла.
По умолчанию, временной штамп является временем последней модификации; опции -c и -u позволяют выбрать два других временных штампа.
.
Можно только догадаться, что «-c» — это наверно «create», «-u» — это наверно «use». То есть, имеется в виду, что можно показать время создания, и время последнего использования (что подразумевается под использованием — тоже неясно).
Я пробую такие команды:
ls -l -c
ls -c -l
ls -lc
ls -cl
Все эти команды выводят список файлов с временем последней модификации файла, а не с временем создания.
Вопрос 1: как пользоваться опцией «-c»?
Вопрос 2: как увидеть время создания файла?
ЗЫЖ — я проверяю на файлах /tmp/Flash* с flv видеопотоком, создаваемые флешплагином фаирфокса.