Jokaisella tiedostojärjestelmän tiedostolla ja kansiolla on niin sanottu Inode-rakenne, johon kyseisen objektin metatiedot tallennetaan. Siihen tallennetaan tiedoston omistaja, omistajaryhmä, muutosajankohta, luomisajankohta ja käyttöoikeus sekä muita tietoja. Sen voi nähdä paitsi tiedostojärjestelmän vianmääritystyökalujen avulla. Tietyt tiedot näytetään ls-hyödykkeellä
, mutta jos tarvitset enemmän, voit käyttää stat-komentoa
. Seuraavaksi kerromme, miten tätä komentoa käytetään Linuxissa.
Komennon syntaksi on yksinkertainen. Sille on annettava vaihtoehdot ja sen tiedoston polku, jonka tiedot haluat nähdä:
$ stat [options] /path/to/file
Optioita ei tarvitse välittää, eikä niitä ole lainkaan paljon:
-L, dereference
- näyttää tiedoston tiedot symbolisen linkin sijasta;
-f, --file-system
- näyttää tiedot tiedostojärjestelmästä, jossa tiedosto sijaitsee;
-c, --format
- voit määrittää tulostusmuodon vakiomuodon sijasta, jokainen tiedosto tulostetaan uudelta riviltä;
--printf
- samanlainen kuin --format
, mutta uudella rivillä on käytettävä ;
-t, --terse
- näyttää tiedot hyvin lyhyessä muodossa, yhdellä rivillä;
--version
- näyttää apuohjelman version.
Katsotaanpa muutamia esimerkkejä käytöstä. Nähdäksesi tietoa tiedostosta riittää, että ohjelma ajetaan ilman asetuksia antamalla sille tiedoston polku, esimerkiksi /etc/passwd
:
$ stat /etc/passwd
Ohjelman tuloste:
Tiedosto
- polku tiedostoon, jonka tiedot näytetään;
Size
- tiedoston koko tavuina;
IO-lohko
- tiedostojärjestelmän lohkon koko tavuina;
Lohkot
- tiedoston viemien tiedostojärjestelmän lohkojen lukumäärä;
Laite
- sen laitteen, esimerkiksi kiintolevyn, tunniste, johon tiedosto on tallennettu;
Inode - tiedoston yksilöllinen Inode-numero;
Linkit
- tiedostoon liittyvien kovien linkkien määrä;
Access - tiedoston käyttöoikeudet
;
Uid
- tiedoston käyttäjän ja omistajan tunniste ja nimi;
Gid
- tiedostoryhmän tunniste ja nimi;
Access
- aika, jolloin tiedostoa viimeksi käytettiin;
Modify
- aika, jolloin tiedoston sisältöä on viimeksi muutettu;
Changed
- aika, jolloin tiedoston attribuutteja tai sisältöä on viimeksi muutettu;
Created(Birth
) - varattu tiedoston alkuperäisen luontipäivämäärän näyttämistä varten, mutta ei vielä käytössä.
Meidän on puhuttava hieman enemmän aikaformaatista. Esimerkiksi tiedoston viimeisimmän käytön aika on 2020-12-02 18:25:01.043831739 +0200. Tämä aika näytetään aikavyöhyke huomioon ottaen. Numerot +0200 osoittavat, että tiedoston luoneen tai muuttaneen tietokoneen aikavyöhyke on kaksi tuntia UTC:tä suurempi, eli Eurooppa/Kiev talviaikaan.
Jos yrität antaa apuohjelmalle symbolisen linkin, se näyttää vain itse linkin Inode-tiedot:
$ stat /etc/passwdlin
Jos haluat nähdä tietoja linkin osoittamasta tiedostosta, käytä -L-vaihtoehtoa
:
$ stat -L /etc/passwdlink
Voit välittää useamman kuin yhden tiedoston:
$ stat /etc/passwd /etc/group
Voit muotoilla tulosteen käyttämällä seuraavia merkkijonoja:
%A
- käyttöoikeudet;
%b
- varattujen lohkojen määrä;
%F
- tiedostotyyppi;
%g
- tiedostoryhmän tunniste;
%G
- tiedostoryhmän nimi;
%i
- Inode-tunniste;
%n
- tiedoston nimi;
%s
- tiedoston koko;
%u
- tiedoston omistajan tunnus;
%U
- tiedoston omistajan nimi;
%x
- viimeisimmän käytön aika;
%y
- viimeisimmän sisällönmuutoksen aika;
%z
- sisällön tai attribuuttien viimeisimmän muutoksen ajankohta.
Nämä eivät ole kaikki mahdollisia sekvenssejä, vaan löydät lisätietoja apuohjelman ohjeesta:
$ man stat
Näytetään esimerkiksi vain tiedoston nimi ja sen sisällön viimeisimmän muutoksen ajankohta:
$ stat --printf "File %n has been modified %y " /etc/passwd /etc/group
Jos haluat nähdä tiedot tiedostojärjestelmästä, jossa tiedosto sijaitsee, käytä -f-vaihtoehtoa
:
$ stat -f /etc/passwd
Katsotaan, mitä apuohjelman näyttämät kentät tarkoittavat:
Tiedosto
- tiedoston nimi;
Type
- tiedostojärjestelmän tyyppi;
ID
- tiedostojärjestelmän tunniste;
Nimen pituus(Namelen
) - nimen enimmäispituus tiedostojärjestelmässä;
Lohkokoko
- luku- tai kirjoituspyynnön sisältämä tietomäärä optimaalisen nopeuden saavuttamiseksi;
Fundamental block
size - fyysinen lohkokoko tiedostojärjestelmässä.
Seuraavaksi ilmoitetaan järjestelmän lohkojen kokonaismäärä ja vapaiden lohkojen määrä.