В системах Linux все обрабатывается как файл, и важные метаданные о файле, такие как дата создания и изменения, хранятся в inodes.
Мы уже рассмотрели, как проверить дату последнего изменения файла в системе Linux с помощью команд stat, httpie и date:
🐧 Как узнать дату последнего изменения файла на Linux
Как найти время создание файла с помощью debugfs
Чтобы узнать время создания файла, вам сначала нужно найти номер inode целевого файла с помощью команды stat.
Команда stat – это инструмент командной строки, используемый для вывода подробной информации о метаданных файла, например:
- Размер файла
- Номер inode
- UID и GID файла
- Блок ввода/вывода
- Время доступа, модификации и изменения.
🐧 50 основных вопросов на собеседовании по Linux | Вопросы и ответы
$ stat filename
$ stat file1.txt
Чтобы пропустить всю остальную информацию и просто отобразить только номер inode, используйте синтаксис:
$ stat -c %i file_name
Например:
$ stat -c %i file1.txt
Когда у вас есть номер inode, вы можете легко перейти к получению времени создания файла с помощью команды debugfs, используя показанный синтаксис:
$ sudo debugfs -R 'stat <inode number>' DEVICE
$ lsblk
Используя номер inode, который мы получили ранее, команда будет выглядеть так:
$ sudo debugfs -R 'stat <951356>' /dev/sda
Время создания показано директивой crtime: как показано в выходных данных ниже:
Мы видим, что файл был создан 14-го откября 2020 г. в 11:48:19
В качестве альтернативы, вместо указания номера inode, вы можете передать полный путь к файлу, как показано тут:
$ sudo debugfs -R 'stat /home/itsecforu/file1.txt' /dev/sda1
Заключение
И на этом мы завершаем этот урок, надеясь, что в Linux когда-нибудь будет простая команда для определения времени создания файла.
Тут мы использовали команду debugfs, чтобы проверить время создания файла.