В система 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
Необходимата информация е записана в колоната Created (Създадено). А с помощта на опцията -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
, да посочите номера на инода
и след това името на файловата система:
$ sudo debugfs -R 'stat <28>' /dev/sda5
След това ще можете да намерите в терминала полето, в което се съхранява датата на създаване. В нашия случай това е crtime.
С това инструкциите са изпълнени.