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!