Spôsoby platby Abuse

Ako zobraziť dátum vytvorenia súboru v systéme Linux

22.04.2022, 18:05

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á.

Dátum vytvorenia súboru

Štandard POSIX špecifikuje len 3 typy časových značiek, ktoré musí súborový systém uchovávať:

  • atime - čas posledného prístupu k súboru.
  • mtime - čas poslednej modifikácie obsahu.
  • ctime - čas poslednej úpravy prístupových práv alebo vlastníka.

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:

  • Ext4 - crtime
  • ZFS - crtime
  • XFS - crtime
  • Btrfs - otime
  • JFS - di_otime

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.

Používanie aplikácie Stat

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

Ako zobraziť dátum vytvorenia súboru v systéme Linux

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.

Ako zobraziť dátum vytvorenia súboru v systéme Linux

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

Ako zobraziť dátum vytvorenia súboru v systéme Linux

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.

Používanie systému DebugFS

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

Ako zobraziť dátum vytvorenia súboru v systéme Linux

Na zobrazenie súborového systému sa bude hodiť príkaz df:

$ df /home/root-user/scripts/main_script.txt

Ako zobraziť dátum vytvorenia súboru v systéme Linux

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

Ako zobraziť dátum vytvorenia súboru v systéme Linux

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ý.