Fiecare fișier și dosar din sistemul de fișiere are o așa-numită structură Inode în care sunt stocate metadatele acestui obiect. Aceasta stochează proprietarul, grupul de proprietari, ora modificării, crearea și accesul la fișier, precum și alte informații. Acesta poate fi văzut nu numai cu ajutorul instrumentelor de depanare a sistemului de fișiere. Anumite informații sunt afișate de utilitarul ls
, dar dacă aveți nevoie de mai multe, puteți utiliza comanda stat
. În continuare vă vom spune cum să utilizați această comandă în Linux.
Sintaxa comenzii este simplă. Trebuie să i se treacă opțiuni și calea către fișierul pentru care doriți să vedeți informațiile:
$ stat [options] /path/to/file
Nu este necesar să treceți opțiuni și nu sunt deloc multe:
-L, dereference
- arată informații despre fișier în loc de o legătură simbolică;
-f, --file-system
- arată informații despre sistemul de fișiere în care este localizat fișierul;
-c, --format
- vă permite să specificați formatul de ieșire în loc de cel standard, fiecare fișier este scos de pe o linie nouă;
--printf
- similar cu --format
, numai că pentru o linie nouă trebuie să utilizați ;
-t, --terse
- arată informațiile într-o formă foarte scurtă, pe o singură linie;
--version
- arată versiunea utilitarului.
Să vedem câteva exemple de utilizare. Pentru a vedea informații despre un fișier, este suficient să executați programul fără opțiuni, trecându-i calea către fișier, de exemplu /etc/passwd
:
$ stat /etc/passwd
Ieșirea programului:
File
- calea către fișierul pentru care sunt afișate informațiile;
Size
- dimensiunea fișierului în octeți;
IO
Block - dimensiunea blocului sistemului de fișiere în octeți;
Blocks
- numărul de blocuri ale sistemului de fișiere ocupate de fișier;
Device
- identificatorul dispozitivului, de exemplu HDD, pe care este salvat fișierul;
Inode - numărul unic de Inode al acestui fișier;
Links
- numărul de legături hard către acest fișier;
Acces -
drepturile deacces
la acest fișier;
Uid
- identificatorul și numele utilizatorului-proprietar al fișierului;
Gid
- identificatorul și numele grupului de fișiere;
Access
- ora ultimei accesări a fișierului;
Modify
- ora la care conținutul fișierului a fost modificat ultima dată;
Changed
- ora la care atributele sau conținutul fișierului au fost modificate ultima dată;
Created(Birth
) - rezervat pentru afișarea datei inițiale de creare a fișierului, dar nu este încă implementat.
Trebuie să vorbim un pic mai mult despre formatul timpului. De exemplu, ora ultimei accesări a fișierului este 2020-12-02 18:25:01.043831739 +0200. Această oră este afișată ținând cont de fusul orar. Iar cifrele +0200 arată că fusul orar de pe computerul care a creat sau modificat acest fișier este cu două ore mai mare decât UTC, adică Europa/Kiev la ora de iarnă.
Dacă încercați să transmiteți un link simbolic utilitarului, acesta va afișa doar informații din Inode-ul linkului în sine:
$ stat /etc/passwdlin
Pentru a vedea informații despre fișierul indicat de legătură, utilizați opțiunea -L
:
$ stat -L /etc/passwdlink
Puteți trece mai mult de un fișier:
$ stat /etc/passwd /etc/group
Pentru a formata ieșirea, puteți utiliza următoarele secvențe de caractere:
%A
- drepturi de acces;
%b
- numărul de blocuri ocupate;
%F
- tipul de fișier;
%g
- identificatorul grupului de fișiere;
%G
- numele grupului de fișiere;
%i
- identificator de inode;
%n
- numele fișierului;
%s
- dimensiunea fișierului;
%u
- identificatorul proprietarului fișierului;
%U
- numele proprietarului fișierului;
%x
- ora ultimei accesări;
%y
- ora ultimei modificări a conținutului;
%z
- momentul ultimei modificări a conținutului sau a atributelor.
Acestea nu sunt toate secvențele posibile, puteți găsi mai multe în ajutorul utilitarului:
$ man stat
De exemplu, să afișăm doar numele unui fișier și ora ultimei modificări a conținutului acestuia:
$ stat --printf "File %n has been modified %y " /etc/passwd /etc/group
Dacă doriți să vedeți informații despre sistemul de fișiere în care este localizat fișierul, trebuie să utilizați opțiunea -f
:
$ stat -f /etc/passwd
Să vedem ce înseamnă câmpurile pe care le afișează utilitarul:
File
- numele fișierului;
Type
- tipul sistemului de fișiere;
ID
- identificatorul sistemului de fișiere;
Lungimea numelui(Namelen
) - lungimea maximă a numelui în sistemul de fișiere;
Dimensiuneablocului
- cantitatea de date dintr-o cerere de citire sau scriere pentru o viteză optimă;
Fundamental block
size - dimensiunea blocului fizic în sistemul de fișiere.
Urmează numărul total de blocuri din sistem și numărul de blocuri libere.