A fájlrendszerben minden fájl és mappa rendelkezik egy úgynevezett Inode struktúrával, amelyben az adott objektum metaadatai tárolódnak. Ez tárolja a tulajdonost, a tulajdonosi csoportot, a módosítás, a létrehozás és a fájlhoz való hozzáférés időpontját, valamint egyéb információkat. Ez nem csak a fájlrendszer hibakereső eszközök segítségével látható. Bizonyos információkat az ls
segédprogram is megmutat, de ha ennél többre van szükségünk, használhatjuk a stat
parancsot. A következőkben elmondjuk, hogyan használhatja ezt a parancsot Linuxban.
A parancs szintaxisa egyszerű. Át kell adni neki opciókat és annak a fájlnak az elérési útvonalát, amelyről az információkat látni szeretné:
$ stat [options] /path/to/file
Nem szükséges opciókat átadni, és egyáltalán nincs sok ilyen opció:
-L, dereference
- szimbolikus hivatkozás helyett fájlinformációk megjelenítése;
-f, --file-system
- megjeleníti az információt a fájlrendszerről, amelyben a fájl található;
-c, --format
- lehetővé teszi a kimeneti formátum megadását a szabványos helyett, minden fájl új sorban kerül kimenetre;
--printf
- hasonló a --format-hoz
, csak egy új sorhoz a ;
-t, --terse
- nagyon rövid formában, egy sorban jeleníti meg az információkat;
--version
- a segédprogram verziójának megjelenítése.
Lássunk néhány példát a használatra. Egy fájlról szóló információ megtekintéséhez elég, ha opciók nélkül futtatjuk a programot, átadva neki a fájl elérési útvonalát, például /etc/passwd
:
$ stat /etc/passwd
A program kimenete:
Fájl
- annak a fájlnak az elérési útvonala, amelyre vonatkozóan az információ megjelenik;
Size
- a fájl mérete bájtban;
IO
blokk - a fájlrendszer blokkjának mérete bájtban;
Blocks
- a fájl által elfoglalt fájlrendszerblokkok száma;
Device
- annak az eszköznek az azonosítója, például HDD, amelyen a fájl tárolva van;
Inode - a fájl egyedi Inode száma;
Linkek
- a fájlhoz tartozó hard linkek száma;
Access -
a fájlhozvaló hozzáférési
jogok;
Uid
- a fájl felhasználó-tulajdonosának azonosítója és neve;
Gid
- a fájlcsoport azonosítója és neve;
Access
- a fájlhoz való utolsó hozzáférés időpontja;
Modify
- a fájl tartalmának utolsó módosításának időpontja;
Changed
- a fájl attribútumainak vagy tartalmának utolsó módosításának időpontja;
Created(Birth
) - a fájl eredeti létrehozási dátumának megjelenítésére fenntartva, de még nem implementálva.
Az időformátumról kicsit bővebben kell beszélnünk. Például a fájlhoz való utolsó hozzáférés időpontja 2020-12-02 18:25:01.043831739 +0200. Ez az időpont az időzóna figyelembevételével jelenik meg. A +0200-as számok pedig azt mutatják, hogy a fájlt létrehozó vagy módosító számítógép időzónája két órával több, mint a UTC, azaz Európa/Kijev téli időszámítás szerint.
Ha szimbolikus linket próbál átadni a segédprogramnak, az csak magának a linknek az Inode-jából származó információkat fogja megmutatni:
$ stat /etc/passwdlin
Ha a hivatkozás által mutatott fájlról szeretne információkat látni, használja a -L
opciót:
$ stat -L /etc/passwdlink
Egynél több fájlt is átadhat:
$ stat /etc/passwd /etc/group
A kimenet formázásához a következő karaktersorozatokat használhatja:
%A
- hozzáférési jogok;
%b
- a foglalt blokkok száma;
%F
- a fájl típusa;
%g
- fájlcsoport-azonosító;
%G
- fájlcsoport neve;
%i
- Inode azonosító;
%n
- fájlnév;
%s
- a fájl mérete;
%u
- a fájl tulajdonosának azonosítója;
%U
- a fájl tulajdonosának neve;
%x
- az utolsó hozzáférés időpontja;
%y
- az utolsó tartalommódosítás időpontja;
%z
- a tartalom vagy az attribútumok utolsó módosításának időpontja.
Ez nem az összes lehetséges szekvencia, továbbiakat a segédprogram súgójában talál:
$ man stat
Például jelenítsük meg csak egy fájl nevét és a tartalom utolsó módosításának időpontját:
$ stat --printf "File %n has been modified %y " /etc/passwd /etc/group
Ha a fájl fájlrendszerére vonatkozó információkat szeretnénk látni, ahol a fájl található, akkor a -f
kapcsolót kell használni:
$ stat -f /etc/passwd
Nézzük meg, mit jelentenek a segédprogram által megjelenített mezők:
Fájl
- a fájl neve;
Type
- a fájlrendszer típusa;
ID
- a fájlrendszer azonosítója;
Név hossza(Namelen
) - a név maximális hossza a fájlrendszerben;
Block
size - az optimális sebességet biztosító adatmennyiség egy olvasási vagy írási kérésben;
Fundamental block
size - fizikai blokkméret a fájlrendszerben.
Ezután következik a rendszerben lévő blokkok teljes száma és a szabad blokkok száma.