Makseviisid Abuse

Mida teeb stat käsk Linuxis

14.11.2021, 16:15

Igal failil ja kaustal on failisüsteemis nn Inode struktuur, kuhu salvestatakse selle objekti metaandmed. Selles salvestatakse faili omanik, omanikugrupp, muutmise aeg, loomine ja juurdepääs sellele ning muud andmed. Seda saab näha mitte ainult failisüsteemi silumisvahendite abil. Teatud teavet näitab abiprogramm ls, kuid kui vajate rohkem, võite kasutada käsku stat. Järgnevalt räägime, kuidas seda käsku Linuxis kasutada.

Mida käsk teeb

Käsu süntaks on lihtne. Talle tuleb edastada valikud ja selle faili tee, mille kohta soovite teavet näha:

$ stat [options] /path/to/file

Valikuid ei ole vaja edastada ja neid ei ole üldse palju:

-L, dereference - näitab faili teavet sümboolse lingi asemel;

-f, --file-system - näitab teavet failisüsteemi kohta, milles fail asub;

-c, --format- võimaldab määrata väljundformaadi standardse asemel, iga fail väljastatakse uuelt realt;

--printf - sarnane --formaadiga, ainult uue rea jaoks tuleb kasutada ;

-t, --terse - näitab teavet väga lühidalt, ühel real;

--version - näitab utiliidi versiooni.

Vaatame mõned näited kasutamisest. Faili kohta teabe nägemiseks piisab, kui käivitada programm ilma optsioonideta, andes talle üle faili tee, näiteks /etc/passwd:

$ stat /etc/passwd

Programmi väljund:

File- faili tee, mille kohta teavet näidatakse;

Size- faili suurus baitides;

IO Block - failisüsteemi ploki suurus baitides;

Blocks- faili poolt hõivatud failisüsteemi plokkide arv;

Device- seadme, näiteks kõvaketta identifikaator, millele fail on salvestatud;

Inode - selle faili unikaalne Inode-number;

Links- selle failiga seotud kõvade linkide arv;

Access - failikasutusõigused;

Uid - faili kasutaja-omaniku identifikaator ja nimi;

Gid - failirühma identifikaator ja nimi;

Access- faili viimase juurdepääsu aeg;

Modify- aeg, mil faili sisu viimati muudeti;

Changed- aeg, mil faili atribuute või faili sisu viimati muudeti;

Created(Birth) - reserveeritud faili algse loomise kuupäeva kuvamiseks, kuid seda ei ole veel rakendatud.

Me peame natuke rohkem rääkima ajaformaadist. Näiteks faili viimase juurdepääsu aeg on 2020-12-02 18:25:01.043831739 +0200. See aeg kuvatakse ajavööndit arvestades. Ja numbrid +0200 näitavad, et selle arvuti ajavöönd, kes selle faili lõi või muutis, on kaks tundi rohkem kui UTC, st Euroopa/Kiievi talveaeg.

Kui proovite anda utiliidile sümboolse lingi, näitab see ainult lingi enda Inode'i teavet:

$ stat /etc/passwdlin

Kui soovite näha teavet lingi poolt osutatud faili kohta, kasutage valikut -L:

$ stat -L /etc/passwdlink

Võite edastada rohkem kui ühe faili:

$ stat /etc/passwd /etc/group

Väljundi vormindamiseks võite kasutada järgmisi tähemärkide jadasid:

%A - juurdepääsuõigused;

%b - hõivatud plokkide arv;

%F - faili tüüp;

%g - failirühma identifikaator;

%G - failirühma nimi;

%i - Inode'i identifikaator;

%n - faili nimi;

%s - faili suurus;

%u - faili omaniku identifikaator;

%U - faili omaniku nimi;

%x - viimase juurdepääsu aeg;

%y - sisu viimase muutmise aeg;

%z - sisu või atribuutide viimase muutmise aeg.

Need ei ole kõik võimalikud jadad, rohkem võite leida utiliidi abist:

$ man stat

Näitame näiteks ainult faili nime ja selle sisu viimase muutmise aega:

$ stat --printf "File %n has been modified %y " /etc/passwd /etc/group

Kui soovite näha teavet failisüsteemi kohta, kus fail asub, tuleb kasutada valikut -f:

$ stat -f /etc/passwd

Vaatame, mida tähendavad utiliidi kuvatavad väljad:

Fail- faili nimi;

Type- failisüsteemi tüüp;

ID - failisüsteemi identifikaator;

Name length(Namelen) - nime maksimaalne pikkus failisüsteemis;

Block size - optimaalse kiiruse saavutamiseks vajalik andmemaht lugemis- või kirjutamistaotluses;

Fundamental block size - füüsilise ploki suurus failisüsteemis.

Järgnevalt on süsteemis olevate plokkide koguarv ja vabade plokkide arv.