Spôsoby platby Abuse

Čo robí príkaz stat v systéme Linux

14.11.2021, 16:15

Každý súbor a priečinok v súborovom systéme má takzvanú štruktúru Inode, v ktorej sú uložené metadáta tohto objektu. Ukladá sa v nej vlastník, skupina vlastníkov, čas modifikácie, vytvorenie a prístup k súboru, ako aj ďalšie informácie. Možno ju vidieť nielen pomocou nástrojov na ladenie súborového systému. Určité informácie zobrazuje nástroj ls, ale ak potrebujete viac, môžete použiť príkaz stat. Ďalej si povieme, ako tento príkaz používať v systéme Linux.

Čo príkaz robí

Syntax príkazu je jednoduchá. Je potrebné mu odovzdať možnosti a cestu k súboru, pre ktorý chcete zobraziť informácie:

$ stat [options] /path/to/file

Možnosti nie je potrebné odovzdávať a nie je ich vôbec veľa:

-L, dereferencia - zobrazí informácie o súbore namiesto symbolického odkazu;

-f, --file-system - zobrazí informácie o súborovom systéme, v ktorom sa súbor nachádza;

-c, --format- umožňuje určiť výstupný formát namiesto štandardného, každý súbor sa vypíše z nového riadku;

--printf - podobne ako --format, len pre nový riadok treba použiť ;

-t, --terse - zobrazí informácie vo veľmi stručnej forme, v jednom riadku;

--version - zobrazí verziu nástroja.

Pozrime sa na niekoľko príkladov použitia. Na zobrazenie informácií o súbore stačí spustiť program bez volieb tak, že mu odovzdáte cestu k súboru, napríklad /etc/passwd:

$ stat /etc/passwd

Výstup programu:

Súbor- cesta k súboru, pre ktorý sa zobrazujú informácie;

Veľkosť- veľkosť súboru v bajtoch;

IO Block - veľkosť bloku súborového systému v bajtoch;

Blocks- počet blokov súborového systému obsadených súborom;

Device (Zariadenie)- identifikátor zariadenia, napríklad HDD, na ktorom je súbor uložený;

Inode - jedinečné číslo Inode tohto súboru;

Links (Odkazy)- počet pevných odkazov na tento súbor;

Prístup - prístupové práva k súboru;

Uid - identifikátor a meno používateľa - vlastníka súboru;

Gid - identifikátor a názov skupiny súborov;

Access- čas posledného prístupu k súboru;

Modify- čas poslednej úpravy obsahu súboru;

Changed- čas poslednej zmeny atribútov alebo obsahu súboru;

Created(Birth)(Vytvorené(Narodenie)) - vyhradené na zobrazenie pôvodného dátumu vytvorenia súboru, ale zatiaľ nie je implementované.

O formáte času si musíme povedať trochu viac. Napríklad čas posledného prístupu k súboru je 2020-12-02 18:25:01.043831739 +0200. Tento čas sa zobrazuje s ohľadom na časové pásmo. A čísla +0200 ukazujú, že časové pásmo na počítači, ktorý vytvoril alebo upravil tento súbor, je o dve hodiny dlhšie ako UTC, t. j. Európa/Kyjev v zimnom čase.

Ak sa pokúsite utilite odovzdať symbolický odkaz, zobrazí iba informácie z Inode samotného odkazu:

$ stat /etc/passwdlin

Ak chcete zobraziť informácie o súbore, na ktorý odkazuje odkaz, použite možnosť -L:

$ stat -L /etc/passwdlink

Môžete odovzdať viac ako jeden súbor:

$ stat /etc/passwd /etc/group

Na formátovanie výstupu môžete použiť nasledujúce postupnosti znakov:

%A - prístupové práva;

%b - počet obsadených blokov;

%F - typ súboru;

%g - identifikátor skupiny súborov;

%G - názov skupiny súborov;

%i - identifikátor inódu;

%n - názov súboru;

%s - veľkosť súboru;

%u - identifikátor vlastníka súboru;

%U - meno vlastníka súboru;

%x - čas posledného prístupu;

%y - čas poslednej úpravy obsahu;

%z - čas poslednej úpravy obsahu alebo atribútov.

Toto nie sú všetky možné sekvencie, ďalšie nájdete v nápovede k nástroju:

$ man stat

Napríklad zobrazme len názov súboru a čas poslednej úpravy jeho obsahu:

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

Ak chcete zobraziť informácie o súborovom systéme, v ktorom sa súbor nachádza, použite možnosť -f:

$ stat -f /etc/passwd

Pozrime sa, čo znamenajú polia, ktoré nástroj zobrazuje:

Súbor- názov súboru;

Typ- typ súborového systému;

ID - identifikátor súborového systému;

Dĺžka názvu(Namelen) - maximálna dĺžka názvu v súborovom systéme;

Veľkosťbloku- množstvo údajov v požiadavke na čítanie alebo zápis pre optimálnu rýchlosť;

Základná veľkosťbloku- fyzická veľkosť bloku v súborovom systéme.

Ďalej je to celkový počet blokov v systéme a počet voľných blokov.