Hvordan bruke Linux Stat -kommandoen

Hvordan bruke Linux Stat -kommandoen
Stat -kommandoen er et nyttig verktøy som rapporterer informasjon om en bestemt fil eller filsystem. Det kommer forhåndsinstallert med nesten alle Linux-systemene der ute, så ingen grunn til å bekymre deg for installasjon.

La oss sjekke ut hvordan du bruker stat for å få alle viktige data du trenger for et spesifikt fil/filsystem.

Hvorfor statskommando

Noen ganger kan det være lurt å vite noen viktige detaljer om et bestemt fil/filsystem, for eksempel filens størrelse, tilgangstillatelser, inode nummer, tid for siste tilgang/modifisering osv. Avtalt, du kan sjekke ut mange detaljer om en fil ved hjelp av LS. Stat tilbyr imidlertid langt mer dyptgående om målfilen/filsystemet.

Når skal du bruke stat? Hver gang du trenger den ekstra informasjonen. For en rask sammenligning, la oss sjekke filinfoen til File1.tekst. For å forstå utdataene bedre, lær mer om LH -kommandoen.

$ ls -lh file1.tekst

La oss nå sjekke ut hva staten har å tilby.

$ Stat File1.tekst

Det er mye informasjon! Du trenger ikke alle av dem i hverdagen, men i en bestemt situasjon kommer staten superyy.

Linux Stat -bruk: Plassering

De fleste av Linux -kommandoene kjøres fra /usr /bin -katalogen.

$ Hvilken stat

Linux Stat Bruk: Kontroller fil/filsysteminfo

Vi har allerede sett dette i aksjon, ikke sant? Kommandostrukturen går slik.

$ stat

For å se den dyptgående informasjonen i et fil/filsystem, kjør denne kommandoen. I dette tilfellet er det min pålitelige fil1.tekst.

$ Stat File1.tekst

Det er mange informasjon om den spesifikke filen, riktig? All informasjonen som presenteres er merket. Avhengig av kravet ditt, hent den viktige. Fra min erfaring er de mest brukte filtillatelser, Inode og UID og/eller GID.

La oss nå sjekke ut et eksempel med et filsystem. I dette tilfellet vil det være monteringspunktet for filsystemet. For eksempel vil denne kommandoen vise informasjonen til rot filsystem.

$ stat /

I Linux er (nesten) hver eneste ting en fil. Ethvert filsystem er en fil i seg selv, så utgangen vil ikke være annerledes.

Linux Stat Bruk: Terse skjema

Når du kjører stat normalt, skrives all informasjonen i en menneskelig lesbar struktur. Vil ha en kort og enkel versjon av utdataene? Legg til "-t" -argumentet.

$ stat -t /

Det terse formatet er et spesielt format som bruker en forhåndsdefinert liste over STAT -formatspesifikasjoner.

Linux Stat -bruk: Tilpasset format

Dette er en annen interessant bruk av STAT -kommandoen der du kan designe ønsket utgangsstruktur av Stat. For å gjøre denne oppgaven, tilbyr STAT en lang liste over spesifikasjoner av tilgjengelige format.

Slik ser kommandoen ut.

$ stat -format =

For eksempel returnerer "%a" -spesifikasjonen filen/filsystemets tillatelser i et menneskelig lesbart format.

$ stat -format =%en fil1.tekst

Spesifikasjonen “%u” returnerer eieren av filen/filsystemet.

$ stat -format =%u /

For å få størrelsen på filen, bruk spesifikasjonen “%S” -format.

$ stat -format =%s fil1.tekst

Vil ha filtypen? Bruk “%F”.

$ stat -format =%f file1.tekst

For inodetallet, bruk “%i”.

$ stat -format =%i fil1.tekst

La oss nå kombinere dem alle sammen til en enkelt kommandolinje. Det vil se slik ut.

$ stat -format = " %a %u %s" /

Det er mange andre formatspesifikasjoner som statsstøtte. Alle av dem er oppført på MAN -siden med statistikk.

Nå, som vi tidligere har sett "-T" eller "-Terse" -argumentet, er det en forhåndsdefinert verdi for følgende argumenter.

$ stat -format = " %n %s %b %f %u %g %d %i %h %t %t %x %y %z %w %o %c"

Når det gjelder argumentet “-Terse-filesystem”, er den forhåndsdefinerte verdien som følger.

$ stat -format = " %n %i %l %t %s %s %b %f %a %c %d"

Disse utgangene er veldig nyttige hvis du bruker stat i noen form for manus, spesielt i bash -skript. Nytt til Bash -skript? Sjekk ut nybegynnerguiden til bash scripting.

Printf vs format

Stat -kommandoen støtter -printf argument som fungerer i utgangspunktet på samme måte som -format. Imidlertid er hovedforskjellen mellom dem hvordan utgangen produseres.

La oss få det klart med et eksempel. Her kjører jeg stat med begge argumentene med samme formatspesifikasjon.

$ stat -format = " %a %u %s" file1.tekst
$ stat --printf = " %a %u %s" file1.tekst

Som vi kan se, -format Argument legger til en ny linje etter at utgangen er avsluttet. Imidlertid -printf ikke. For å sikre at det er en ny linje etter utdataene, må du legge til “\ n” på slutten av formatspesifikatorstrengen.

$ stat --printf = " %a %u %s \ n" file1.tekst

Skille mellom fil og lenke

I visse situasjoner jobber du kanskje med en lenke. Imidlertid skiller ikke staten seg mellom en lenke og en fysisk fil. Det er et dedikert argument for å komme seg rundt dette problemet. Bare pass "-l" -argumentet.

$ stat -L

Siste tanker

Statverktøyet er ganske greit. Alle funksjonene styres av enkle argumenter og flagg. Når du vet hvilken du skal bruke, kan du høste mest mulig ut av den.

For å lære videre dybde om statskommandoen, anbefaler jeg på det sterkeste å sjekke ut mannssiden. Den inneholder alle støttede formatspesifikasjoner og noen tilleggsargumenter som du kan synes er interessante.

$ mann stat

Nyt!