"Linux" sistemoje failo savybės failų tvarkyklėje rodo tik informaciją apie paskutinės prieigos prie failo datą ir pakeitimo datą. Tačiau sukūrimo data nerodoma. Kartais į ją reikia pažvelgti, pavyzdžiui, norint sužinoti, kada įrašomas žurnalas. Šioje instrukcijoje papasakosime, kaip pamatyti, kokie duomenys saugomi "Linux" failų sistemose, ir paaiškinsime, kaip sužinoti "Linux" failo sukūrimo datą. Iš karto paminėsime du patogius būdus, kurių kiekvienas turi savo ypatumų.
POSIX standarte nurodyti tik 3 laiko žymų, kurias turi saugoti failų sistema, tipai:
Todėl senose failų sistemose dažnai neįmanoma pamatyti informacijos apie failo sukūrimo datą. Tačiau šiuolaikinėse failų sistemose (ext4, zfs, XFS ir t. t.) ji jau saugoma.
Duomenys apie sukūrimo datą įrašomi specialiame lauke:
Šią informaciją galima peržiūrėti dviem būdais: stat ir debugfs. Tačiau pirmasis metodas tinka ne visų "Linux" distributyvų naudotojams. Antrasis metodas yra universalus, tačiau juo naudotis ne taip paprasta. Panagrinėkime kiekvieną iš jų atskirai.
Naudingoji programa stat rodo išsamią informaciją apie failą. Be kita ko, ji rodo "Linux" failo sukūrimo datą. Norint ją paleisti terminale, tereikia nurodyti kelią iki failo. Pavyzdžiui, peržiūrėkime informaciją apie paveikslėlį pic_1.jpeg
, saugomą kataloge /home/root-user/Pictures
:
$ stat /home/root-user/Pictures/pic_1.jpeg
Reikiama informacija įrašoma stulpelyje Created (Sukurta). O naudodami parinktį -c galite nustatyti tam tikras išvedamos informacijos formatavimo taisykles, pavyzdžiui, palikti tik reikiamą stulpelį:
$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg
Tačiau yra vienas nedidelis sunkumas. Kai kuriose "Linux" distribucijose šis laukas bus tuščias, kai bus naudojama stat programa.
Pagrindinė priežastis yra ta, kad išvestis rodoma statx(2). Šis apvalkalas buvo įtrauktas į glibc biblioteką versijoje 2.28. Tai reiškia, kad šio apvalkalo palaikymas atsirado pagrindinių sistemos įrankių rinkinyje GNU coreutils 8.31. Norėdami patikrinti versiją, paleiskite šią komandą:
$ stat --version
Todėl stat
galės išvesti failų kūrimo duomenis tik tuo atveju, jei bus pirmiau aprašytos konkrečios sąlygos. Pavyzdžiui, Ubuntu 21.10 distribucijoje viskas veikia be jokių problemų, tačiau Ubuntu 20.04 distribucijoje laukas bus tuščias.
DebugFS įrankis neturi jokių versijos apribojimų. Ji visada veiks. Tačiau jo naudojimo procedūra yra šiek tiek sudėtingesnė. Taip yra todėl, kad, norėdami peržiūrėti failo sukūrimo datą per DebugFS, turite žinoti jo inodo numerį ir failų sistemą. Norėdami sužinoti inodą, naudokite komandą ls
su parinktimi -i
, nurodydami kelią iki failo:
$ ls -i /home/root-user/scripts/main_script.txt
Norint peržiūrėti failų sistemą, pravers komanda df
:
$ df /home/root-user/scripts/main_script.txt
Dabar turite visus reikiamus duomenis ir galite pereiti prie debugfs įrankio. Jai reikia perduoti parinktį -R
, nurodyti inodo
numerį ir failų sistemos pavadinimą:
$ sudo debugfs -R 'stat <28>' /dev/sda5
Po to terminale galėsite rasti lauką, kuriame saugoma sukūrimo data. Mūsų atveju tai yra crtime.
Tuo instrukcijos baigtos.