Hvordan bruke stat-kommandoen på Linux
Fatmawati Achmad Zaenuri/Shutterstock.com
Linux |_+_| kommandoen viser deg mye mer detaljer enn |_+_| gjør. Ta en titt bak gardinen med dette informative og konfigurerbare verktøyet. Vi viser deg hvordan du bruker den.
stat tar deg bak kulissene
Den |_+_| kommandoen er god på hva den gjør – og den gjør mye – men med Linux ser det ut til at det alltid er en måte å gå dypere og se hva som ligger under overflaten. Og ofte er det ikke bare et tilfelle av å løfte kanten av teppet. Du kan rive opp gulvbordene og deretter grave et hull. Du kan skrelle Linux som en løk.
I SLEKT 10 grunnleggende Linux-kommandoer for nybegynnere
|_+_| vil vise deg mye informasjon om en fil, for eksempel hvilke tillatelser som er satt på den, og hvor stor den er, og enten det er en fil eller en symbolsk lenke . For å vise denne informasjonen |_+_| leser det fra en filsystemstruktur kalt en inode .
Hver fil og katalog har en inode. Inoden holder metadata om filen , for eksempel hvilke filsystemblokker den opptar, og datostemplene knyttet til filen. Inoden er som et lånekort for filen. Men |_+_| vil bare vise deg noe av informasjonen. For å se alt, må vi bruke |_+_| kommando.
Lik |_+_| , den |_+_| kommandoen har mange alternativer. Dette gjør den til en god kandidat for bruk av aliaser. Når du har oppdaget et bestemt sett med alternativer som gjør |_+_| gi deg utgangen du ønsker, pakk den inn i et alias eller skallfunksjon . Dette gjør det mye mer praktisk å bruke, og du trenger ikke å huske et mystisk sett med kommandolinjealternativer.
I SLEKT: Hvordan bruke ls-kommandoen til å liste filer og kataloger på Linux
En rask sammenligning
La oss bruke |_+_| for å gi oss en lang liste (alternativet |_+_|) med filstørrelser som kan leses av mennesker (alternativet |_+_|):
stat
Annonse
Fra venstre til høyre er informasjonen som ls gir:
- Det aller første tegnet er en bindestrek - og dette forteller oss at filen er en vanlig fil og ikke en socket, symbolkobling eller en annen type objekt.
- Eieren, gruppen og andre tillatelser er oppført i oktalt format .
- Antallet harde lenker som peker til denne filen. I dette tilfellet, og i de fleste tilfeller, vil det være en.
- Fileieren er dave.
- Gruppeeieren er dave.
- Filstørrelsen er 802 byte.
- Filen ble sist endret fredag 13. desember 2015.
- Filnavnet er |_+_|.
La oss ta en titt med |_+_| :
ls
Informasjonen vi får fra |_+_| er:
- & rsaquo; Alt du noen gang har ønsket å vite om inoder på Linux
- › 5 nettsteder hver Linux-bruker bør bokmerke
- & rsaquo; Cyber Monday 2021: Beste tekniske tilbud
- & rsaquo; Cyber Monday 2021: Beste Apple-tilbud
- › Slik finner du Spotify Wrapped 2021
- › Datamaskinmappen er 40: Hvordan Xerox Star skapte skrivebordet
- › Funksjoner vs. formler i Microsoft Excel: Hva er forskjellen?
Forstå tidsstemplene
Tidsstemplene er tidssonesensitive. Den |_+_| på slutten av hver linje viser at denne filen ble opprettet på en datamaskin i en Koordinert universell tid (UTC) tidssone som er fem timer foran tidssonen til gjeldende datamaskin. Så denne datamaskinen er fem timer bak datamaskinen som opprettet denne filen. Faktisk ble filen opprettet på en britisk tidssonedatamaskin, og vi ser på den her på en datamaskin i US Eastern Standard-tidssonen.
Endre og endre tidsstemplene kan forårsake forvirring fordi navnene deres høres ut som om de betyr det samme for de uinnvidde.
La oss bruke |_+_| for å endre filtillatelsene på en fil kalt |_+_|. Vi skal gjøre det skrivbart for alle. Dette vil ikke påvirke innholdet i filen, men det vil påvirke attributtene til filen.
ls
Og så bruker vi |_+_| for å se på tidsstemplene:
ls
Annonse
Tidsstempelet for endring er oppdatert, men det endrede har ikke blitt det.
De modifisert tidsstempelet vil bare bli oppdatert hvis innholdet i filen endres. De endring tidsstempelet oppdateres for både innholdsendringer og attributtendringer.
Bruke Stat med flere filer
For å få statistisk rapport om flere filer samtidig, send filnavnene til |_+_| på kommandolinjen:
ls
For å bruke |_+_| på et sett med filer, bruk mønstertilpasning. Spørsmålstegnet? representerer et enkelt tegn, og stjernen * representerer en hvilken som helst streng med tegn. Vi kan fortelle |_+_| å rapportere om hvilken som helst fil kalt ana med en enkeltbokstavsutvidelse, med denne kommandoen:
ls
Bruke stat for å rapportere om filsystemer
|_+_| kan rapportere om status for filsystemer, samt status for filer. Den |_+_| (filsystem)-alternativet forteller |_+_| å rapportere om filsystemet som filen ligger på. Merk at vi også kan sende en katalog som / til |_+_| i stedet for et filnavn.
stat
Informasjonen |_+_| gir oss er:
Blokker:
Inoder:
Se bort fra symbolske lenker
Hvis du bruker |_+_| på en fil som faktisk er en symbolsk lenke, vil den rapportere om lenken. Hvis du ville |_+_| for å rapportere om filen som koblingen peker til, bruk |_+_| (hensiktsmessig) alternativ. Filen |_+_| er en symbolsk lenke til |_+_| . La oss se på det uten |_+_| alternativ:
ls
Annonse
Filnavnet viser |_+_| peker på ( |_+_| ) |_+_|. Filstørrelsen er bare 11 byte. Det er null blokker viet til å lagre denne koblingen. Filtypen er oppført som en symbolsk lenke.
Det er klart at vi ikke ser på den faktiske filen her. La oss gjøre det igjen og legge til |_+_| alternativ:
stat
Dette viser nå fildetaljene for filen som den symbolske lenken viser til. Men merk at filnavnet fortsatt er gitt som |_+_|. Dette er navnet på lenken, ikke målfilen. Dette skjer fordi dette er navnet vi ga til |_+_| på kommandolinjen.
Terse-rapporten
Den |_+_| (terse) alternativet forårsaker |_+_| for å gi et sammendrag:
stat
Det er ingen ledetråder gitt. For å gi mening – inntil du har husket feltsekvensen – må du kryssreferanser denne utgangen til en fullstendig |_+_| produksjon.
Egendefinerte utdataformater
En bedre måte å få et annet sett med data fra |_+_| er å bruke et tilpasset format. Det er en lang liste over tokens kalt formatsekvenser. Hver av disse representerer et dataelement. Velg de du vil ha inkludert i utdataene og lag en formatstreng. Når vi ringer |_+_| og sende formatstrengen til den, vil utdataene bare inkludere dataelementene vi ba om.
AnnonseDet finnes forskjellige sett med formatsekvenser for filer og filsystemer. Listen for filer er:
Epoken er Unix-epoken , som fant sted 1970-01-01 00:00:00 +0000 (UTC).
For filsystemer er formatsekvensene:
Det er to alternativer som godtar strenger med formatsekvenser. Disse er |_+_| og |_+_|. Forskjellen mellom dem er |_+_| tolker C-stil rømningssekvenser som nylinje |_+_| og fanen |_+_| , og det legger ikke automatisk til et linjeskifttegn i utdataene.
La oss lage en formatstreng og sende den til |_+_|. Formatsekvensene som skulle brukes er |_+_| for filnavn, |_+_| for størrelsen på filen og |_+_| for filtypen. Vi skal legge til |_+_| escape-sekvensen til slutten av strengen for å sikre at hver fil håndteres på en ny linje. Formatstrengen vår ser slik ut:
ls
Vi skal sende dette til |_+_| ved å bruke |_+_| alternativ. Vi kommer til å spørre |_+_| å rapportere om en fil kalt |_+_| og et sett med filer som samsvarer med |_+_|. Dette er hele kommandoen. Legg merke til likhetstegnet |_+_| mellom |_+_| og formatstrengen:
-l
Rapporten for hver fil er oppført på en ny linje, som er det vi ba om. Filnavnet, filstørrelsen og filtypen er gitt for oss.
AnnonseEgendefinerte formater gir deg tilgang til enda flere dataelementer enn det som er inkludert i standarden |_+_| produksjon.
Finkornkontroll
Som du kan se, er det et enormt omfang for å trekke ut de spesielle dataelementene som er av interesse for deg. Du kan sikkert også se hvorfor vi anbefalte å bruke aliaser for lengre og mer komplekse besvergelser.
I SLEKT: Beste Linux bærbare datamaskiner for utviklere og entusiaster
LES NESTEDave McKay brukte først datamaskiner da stanset papirtape var på moten, og han har programmert siden. Etter over 30 år i IT-bransjen er han nå teknologijournalist på heltid. I løpet av sin karriere har han jobbet som frilansprogrammerer, leder for et internasjonalt programvareutviklingsteam, prosjektleder for IT-tjenester og sist som databeskyttelsesansvarlig. Hans forfatterskap har blitt publisert av howtogeek.com, cloudsavvyit.com, itenterpriser.com og opensource.com. Dave er en Linux-evangelist og forkjemper for åpen kildekode.
Les hele bio