Mokėjimo būdai Abuse

Ką "Linux" daro komanda stat

14.11.2021, 16:15

Kiekvienas failas ir aplankas failų sistemoje turi vadinamąją "Inode" struktūrą, kurioje saugomi šio objekto metaduomenys. Joje saugomas failo savininkas, savininkų grupė, keitimo, sukūrimo ir prieigos prie failo laikas, taip pat kita informacija. Ją galima pamatyti ne tik naudojant failų sistemos derinimo priemones. Tam tikrą informaciją parodo ls įrankis, tačiau jei reikia daugiau, galima naudoti komandą stat. Toliau papasakosime, kaip šią komandą naudoti "Linux" sistemoje.

Ką ši komanda daro

Komandos sintaksė paprasta. Jai reikia perduoti parinktis ir kelią iki failo, apie kurį norite matyti informaciją:

$ stat [options] /path/to/file

Pasirinktis perduoti nebūtina, o jų apskritai nėra daug:

-L, dereferencija - vietoj simbolinės nuorodos rodoma informacija apie failą;

-f, --file-system - rodyti informaciją apie failų sistemą, kurioje yra failas;

-c, --format- leidžia nurodyti išvesties formatą vietoj standartinio, kiekvienas failas išvedamas iš naujos eilutės;

--printf - panašu į --format, tik naujai eilutei reikia naudoti ;

-t, --terse - pateikia informaciją labai trumpai, vienoje eilutėje;

--versija - rodo programos versiją.

Pažiūrėkime keletą naudojimo pavyzdžių. Norint pamatyti informaciją apie failą, užtenka paleisti programą be parinkčių, perduodant jai kelią iki failo, pavyzdžiui, /etc/passwd:

$ stat /etc/passwd

Programos išvestis:

Failas- kelias iki failo, apie kurį rodoma informacija;

Dydis- failo dydis baitais;

IO blokas - failų sistemos bloko dydis baitais;

Blokai- failo užimtų failų sistemos blokų skaičius;

Įrenginys- įrenginio, pavyzdžiui, HDD, į kurį įrašytas failas, identifikatorius;

Inode - unikalus šio failo Inode numeris;

Nuorodos- šio failo kietųjų nuorodų skaičius;

Prieiga - prieigos prie failo teisės;

Uid - failo naudotojo ir savininko identifikatorius ir vardas;

Gid - failo grupės identifikatorius ir pavadinimas;

Access- paskutinės prieigos prie failo laikas;

Modify- laikas, kada paskutinį kartą buvo pakeistas failo turinys;

Changed- laikas, kai paskutinį kartą buvo pakeisti failo atributai arba failo turinys;

Created(Birth)- rezervuota pradinei failo sukūrimo datai rodyti, tačiau dar neįgyvendinta.

Reikia šiek tiek daugiau pakalbėti apie laiko formatą. Pavyzdžiui, paskutinės prieigos prie failo laikas yra 2020-12-02 18:25:01.043831739 +0200. Šis laikas rodomas atsižvelgiant į laiko juostą. O skaičiai +0200 rodo, kad šį failą sukūrusio arba modifikavusio kompiuterio laiko juosta yra dviem valandomis ilgesnė už UTC, t. y. Europos / Kijevo žiemos laiku.

Jei įrankiui bandysite perduoti simbolinę nuorodą, jis parodys tik pačios nuorodos Inode informaciją:

$ stat /etc/passwdlin

Jei norite matyti informaciją apie failą, į kurį nurodo nuoroda, naudokite parinktį -L:

$ stat -L /etc/passwdlink

Galite perduoti daugiau nei vieną failą:

$ stat /etc/passwd /etc/group

Norėdami suformatuoti išvestį, galite naudoti šias simbolių sekas:

%A - prieigos teisės;

%b - užimtų blokų skaičius;

%F - failo tipas;

%g - failų grupės identifikatorius;

%G - failų grupės pavadinimas;

%i - Inode identifikatorius;

%n - failo pavadinimas;

%s - failo dydis;

%u - failo savininko identifikatorius;

%U - failo savininko vardas;

%x - paskutinės prieigos laikas;

%y - paskutinio turinio pakeitimo laikas;

%z - paskutinio turinio ar atributų pakeitimo laikas.

Tai ne visos galimos sekos, daugiau jų rasite naudingumo programos žinyne:

$ man stat

Pavyzdžiui, parodykime tik failo pavadinimą ir paskutinio jo turinio pakeitimo laiką:

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

Jei norite matyti informaciją apie failų sistemą, kurioje yra failas, naudokite parinktį -f:

$ stat -f /etc/passwd

Pažiūrėkime, ką reiškia programos rodomi laukai:

Failas- failo pavadinimas;

Tipas- failų sistemos tipas;

ID - failų sistemos identifikatorius;

Vardo ilgis(Namelen) - didžiausias vardo ilgis failų sistemoje;

Bloko dydis (Block size) - duomenų kiekis skaitymo arba rašymo užklausoje, kad būtų užtikrinta optimali sparta;

Fundamental block size (pagrindinis bloko dydis) - fizinis bloko dydis failų sistemoje.

Toliau nurodomas bendras blokų skaičius sistemoje ir laisvų blokų skaičius.