V systéme Linux sa vo vlastnostiach súboru v správcovi súborov zobrazujú iba informácie o dátume posledného prístupu k súboru a dátume jeho úpravy. Dátum vytvorenia sa tam však nezobrazuje. Niekedy sa naň musíte pozrieť, napríklad aby ste zistili, kedy sa zaznamenáva protokol. V tomto návode vám povieme, ako zistiť, aké údaje sú uložené v súborových systémoch Linux, a vysvetlíme, ako zistiť dátum vytvorenia súboru Linux. Spomenieme hneď dva vhodné spôsoby, pričom každý má svoje špecifiká.
Štandard POSIX špecifikuje len 3 typy časových značiek, ktoré musí súborový systém uchovávať:
Preto v starých súborových systémoch často nie je možné vidieť informácie o dátume vytvorenia súboru. V moderných súborových systémoch (ext4, zfs, XFS atď.) je však už uložený.
Údaje o dátume vytvorenia sa zaznamenávajú v špeciálnom poli:
Na zobrazenie týchto informácií existujú dve metódy: stat a debugfs. Prvá metóda však nie je vhodná pre používateľov každej distribúcie Linuxu. Druhá metóda je univerzálna, ale nie je taká jednoduchá na použitie. Venujme sa každej z nich osobitne.
Nástroj stat zobrazuje podrobné informácie o súbore. Okrem iného zobrazuje dátum, kedy bol súbor v Linuxe vytvorený. Ak ho chcete spustiť v termináli, stačí zadať cestu k súboru. Pozrime sa napríklad na informácie o obrázku pic_1.jpeg
uloženom v katalógu /home/root-user/Pictures
:
$ stat /home/root-user/Pictures/pic_1.jpeg
Potrebné informácie sú zaznamenané v stĺpci Created (Vytvorené). A pomocou možnosti -c môžete nastaviť určité pravidlá formátovania výstupných informácií, napríklad ponechať len potrebný stĺpec:
$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg
Je tu však jeden malý problém. V niektorých distribúciách Linuxu bude toto pole pri použití nástroja stat prázdne.
Hlavným dôvodom je, že výstup sa zobrazuje v programe statx(2). Tento shell bol pridaný do knižnice glibc vo verzii 2.28. To znamená, že podpora tohto shellu sa objavila v súbore základných systémových nástrojov GNU coreutils 8.31. Ak chcete zistiť verziu, spustite tento príkaz:
$ stat --version
Následne bude stat
schopný vypisovať údaje o vytváraní súborov len vtedy, ak sú splnené vyššie opísané špecifické podmienky. Napríklad v distribúcii Ubuntu 21.10 všetko funguje bez problémov, ale v Ubuntu 20.04 bude pole prázdne.
Nástroj DebugFS nemá žiadne obmedzenia týkajúce sa verzie. Bude fungovať vždy. Postup jeho používania je však trochu zložitejší. Je to preto, že na zobrazenie dátumu vytvorenia súboru prostredníctvom debugfs potrebujete poznať jeho číslo inódu a súborový systém. Ak chcete získať inode, použite príkaz ls
s parametrom -i
, pričom zadáte cestu k súboru:
$ ls -i /home/root-user/scripts/main_script.txt
Na zobrazenie súborového systému sa bude hodiť príkaz df
:
$ df /home/root-user/scripts/main_script.txt
Teraz máte všetky potrebné údaje a môžete prejsť k nástroju debugfs. Musíte mu odovzdať možnosť -R
, zadať číslo inódu
a potom názov súborového systému:
$ sudo debugfs -R 'stat <28>' /dev/sda5
Potom budete môcť v termináli nájsť pole, v ktorom je uložený dátum vytvorenia. V našom prípade je to crtime.
Tým je návod ukončený.