Maksutavat Abuse

Mitä stat-komento tekee Linuxissa

14.11.2021, 16:15

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.

Mitä komento tekee

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