Linux-järjestelmässä tiedoston ominaisuudet tiedostonhallinnassa näyttävät vain tiedot tiedoston viimeisimmästä käyttöpäivästä ja muutospäivästä. Luontipäivää ei kuitenkaan näytetä. Joskus sinun on katsottava sitä esimerkiksi saadaksesi selville, milloin loki on tallennettu. Tässä ohjeessa kerromme, miten näet, mitä tietoja Linux-tiedostojärjestelmiin tallennetaan, ja selitämme, miten Linux-tiedoston luontipäivämäärä saadaan selville. Mainitaan kerralla kaksi kätevää tapaa, joilla kummallakin on omat erityispiirteensä.
POSIX-standardi määrittelee vain 3 erilaista aikaleimaa, jotka tiedostojärjestelmän on tallennettava:
Siksi vanhoissa tiedostojärjestelmissä on usein mahdotonta nähdä tietoa tiedoston luontipäivästä. Mutta nykyaikaisissa tiedostojärjestelmissä (ext4, zfs, XFS ja niin edelleen) se on jo tallennettu.
Luontipäivämäärää koskevat tiedot tallennetaan erityiseen kenttään:
Näitä tietoja voi tarkastella kahdella tavalla: stat ja debugfs. Ensimmäinen menetelmä ei kuitenkaan sovellu kaikkien Linux-jakeluiden käyttäjille. Toinen menetelmä on yleispätevä, mutta sitä ei ole niin helppo käyttää. Käsitellään kumpikin niistä erikseen.
Stat-apuohjelma näyttää yksityiskohtaisia tietoja tiedostosta. Se näyttää muun muassa päivämäärän, jolloin Linux-tiedosto on luotu. Käyttääksesi sitä terminaalissa sinun tarvitsee vain määrittää tiedoston polku. Katsotaan esimerkiksi tietoja kuvasta pic_1.jpeg
, joka on tallennettu hakemistoon /home/root-user/Pictures
:
$ stat /home/root-user/Pictures/pic_1.jpeg
Tarvittavat tiedot on tallennettu Created-sarakkeeseen. Ja käyttämällä -c-vaihtoehtoa voit asettaa tietyt muotoilusäännöt tietojen tulostukselle, esimerkiksi jättää vain tarvittavan sarakkeen:
$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg
Mutta on yksi pieni vaikeus. Joissakin Linux-jakeluissa tämä kenttä on tyhjä, kun käytät stat-apuohjelmaa.
Pääsyy on se, että tuloste näytetään statx(2)-ohjelmalla. Komentotulkki lisättiin glibc-kirjastoon versiossa 2.28. Eli tuki tälle komentotulkille ilmestyi GNU coreutils 8.31 -järjestelmän perusapuohjelmien joukkoon. Voit tarkistaa version suorittamalla tämän komennon:
$ stat --version
Näin ollen stat
pystyy tuottamaan tiedostonluontitietoja vain, jos edellä kuvatut erityisehdot täyttyvät. Esimerkiksi Ubuntu 21.10 -jakelussa kaikki toimii ongelmitta, mutta Ubuntu 20.04:ssä kenttä on tyhjä.
DebugFS-apuohjelmalla ei ole versiorajoituksia. Se toimii aina. Mutta sen käyttömenettely on hieman monimutkaisempi. Tämä johtuu siitä, että jotta voit tarkastella tiedoston luontipäivämäärää debugfs:n kautta, sinun on tiedettävä sen inode-numero ja tiedostojärjestelmä. Saat inode-numeron selville käyttämällä komentoa ls
, jossa on -i-vaihtoehto
ja jossa on tiedoston polku:
$ ls -i /home/root-user/scripts/main_script.txt
Tiedostojärjestelmän tarkastelemiseksi df-komento
on kätevä:
$ df /home/root-user/scripts/main_script.txt
Nyt sinulla on kaikki tarvittavat tiedot ja voit siirtyä debugfs-apuohjelmaan. Sinun on annettava sille -R-optio
, määritettävä inode-numero
ja sitten tiedostojärjestelmän nimi:
$ sudo debugfs -R 'stat <28>' /dev/sda5
Tämän jälkeen löydät terminaalista kentän, johon on tallennettu luontipäivämäärä. Meidän tapauksessamme se on crtime.
Näin ohjeet on saatu valmiiksi.