Betalingsmåter Abuse

Hva stat-kommandoen gjør i Linux

14.11.2021, 16:15

Hver fil og mappe i filsystemet har en såkalt Inode-struktur der metadataene til dette objektet lagres. Her lagres blant annet eier, eiergruppe, tidspunkt for endring, opprettelse og tilgang til filen, samt annen informasjon. Det kan ikke bare ses ved hjelp av feilsøkingsverktøy for filsystemet. Visse opplysninger vises av ls-verktøyet, men hvis du trenger mer, kan du bruke stat-kommandoen. Nå skal vi fortelle deg hvordan du bruker denne kommandoen i Linux.

Hva kommandoen gjør

Syntaksen til kommandoen er enkel. Den må inneholde alternativer og banen til filen du vil se informasjon om:

$ stat [options] /path/to/file

Det er ikke nødvendig å oppgi alternativer, og det er ikke mange av dem i det hele tatt:

-L, dereference - viser filinformasjon i stedet for en symbolsk lenke;

-f, --file-system - viser informasjon om filsystemet som filen ligger i;

-c, --format- lar deg spesifisere utdataformatet i stedet for standardformatet, og hver fil skrives ut fra en ny linje;

--printf - ligner på --format, men for en ny linje bør du bruke ;

-t, --terse - viser informasjon i en svært kortfattet form, på én linje;

--version - viser versjonen av verktøyet.

La oss se noen eksempler på bruk. For å se informasjon om en fil, er det nok å kjøre programmet uten alternativer ved å gi det stien til filen, for eksempel /etc/passwd:

$ stat /etc/passwd

Programutdata:

File- stien til filen som informasjonen skal vises for;

Size- størrelsen på filen i byte;

IO Block - størrelsen på filsystemblokken i byte;

Blocks- antall filsystemblokker som er opptatt av filen;

Device- identifikator for enheten, for eksempel HDD, som filen er lagret på;

Inode - unikt inodenummer for denne filen;

Lenker- antall hardlenker til denne filen;

Access - tilgangsrettigheter til filen;

Uid - identifikator og navn på brukeren som eier filen;

Gid - identifikator og navn på filgruppen;

Access- tidspunktet for siste tilgang til filen;

Modify- tidspunktet da innholdet i filen sist ble endret;

Changed- tidspunktet da filattributtene eller filinnholdet sist ble endret;

Created(Birth)- reservert for visning av den opprinnelige opprettelsesdatoen for filen, men ennå ikke implementert.

Vi må snakke litt mer om tidsformatet. For eksempel er tidspunktet for siste tilgang til filen 2020-12-02 18:25:01.043831739 +0200. Dette klokkeslettet vises med hensyn til tidssonen. Og tallene +0200 viser at tidssonen på datamaskinen som opprettet eller endret denne filen er to timer mer enn UTC, dvs. Europa/Kiev i vintertid.

Hvis du prøver å sende verktøyet en symbolsk lenke, vil det bare vise informasjon fra selve lenkens inode:

$ stat /etc/passwdlin

Hvis du vil se informasjon om filen som lenken peker til, bruker du alternativet -L:

$ stat -L /etc/passwdlink

Du kan sende mer enn én fil:

$ stat /etc/passwd /etc/group

For å formatere utdataene kan du bruke følgende tegnsekvenser:

%A - tilgangsrettigheter;

%b - antall blokker som er opptatt;

%F - filtype;

%g - filgruppeidentifikator;

%G - navn på filgruppe;

%i - inodeidentifikator;

%n - filnavn

%s - filstørrelse

%u - filens eieridentifikator;

%U - filens eiernavn;

%x - tidspunkt for siste tilgang;

%y - tidspunkt for siste endring av innhold;

%z - tidspunkt for siste endring av innhold eller attributter.

Dette er ikke alle mulige sekvenser, og du finner flere i hjelpen til verktøyet:

$ man stat

La oss for eksempel bare vise navnet på en fil og tidspunktet for siste endring av innholdet:

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

Hvis du vil se informasjon om filsystemet der filen befinner seg, bør du bruke -f-alternativet:

$ stat -f /etc/passwd

La oss se hva feltene som verktøyet viser, betyr:

File- navnet på filen;

Type- filsystemtype;

ID - filsystemets identifikator;

Navnelengde (Namelen)- den maksimale lengden på navnet i filsystemet;

Blokkstørrelse- datamengden i en lese- eller skriveforespørsel for optimal hastighet;

Fundamental blokkstørrelse - fysisk blokkstørrelse i filsystemet.

Deretter følger det totale antallet blokker i systemet og antallet ledige blokker.