Linux-operativsystemet holder rede på tre tidsstempler for hver fil på systemet ditt. Disse tidsstemplene lar deg oppdage når en fil sist ble oppdatert. Men hva betyr de alle? Og hvordan finner du ut disse tidene for en fil? Er det forskjell når det gjelder kataloger?

En forståelse av atime, ctime og mtime kan svare på alle disse spørsmålene. Dette er de tre tidsstempel som Unix filsystemer sporer. Hvis du noen gang trenger å finne ut detaljer om hva som endret seg og når, kan du lese videre.

Hva er de tre Unix-tidsstemplene?

Hver fil har tre tidsstempler tilknyttet. Linux lagrer disse i Unix tidsformat som måler sekunder siden epoken. De tre tidsstemplene blir ofte referert til som atime, ctime og mtime.

De mtime er den vanligste og ofte den mest nyttige. Det står for endret tid. Det er tidspunktet da filens innhold sist ble skrevet til disken.

Litt annerledes er den ctime som står for endre tid. Denne tidsstempelet sporer metadataendringer som eierskap og tillatelser. Det inkluderer å gi nytt navn til en fil - i det minste på typiske moderne Linux-operativsystemer. Men den oppdateres også når filens innhold endres, så den er alltid like oppdatert som mtime.

instagram viewer

Den tredje tidsstemplet er en gang, som lagrer sist gang noen fikk tilgang til filen.

Hvordan tidsstempler gjelder for kataloger

En Linux-katalog er egentlig en liste over filene i den katalogen. Så å opprette en fil i en katalog vil oppdatere katalogens mtime. Oppføring av filene i katalogen ved hjelp av ls kommandoen, for eksempel, oppdaterer tilgangstiden. Og som med en fil, endrer du tillatelser eller navn på katalogen sin ctime.

Hva med skapelsestiden?

Det kan overraske deg å høre at Linux rett og slett ikke holder styr på skapelsestiden. Du kan først anta det ctime står for skapelsestid. På samme måte kan du tenke på det som en veldig nyttig ting å kunne finne ut av.

Mange applikasjoner lagrer filer ved å lage dem fra bunnen av hver gang. Dette vil gjøre bruk av en skapelsestid misvisende.

Hvordan vise de forskjellige tidsstemplene

Den enkleste måten å få informasjon om tidsstempel er med de ls kommando. Standard langformat viser detaljer for mtime:

$ date
Lør 6. mars 16:57:01 GMT 2021
$ echo "hallo, verden"> tmp
$ ls -l tmp.txt
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Du kan vise tiden i stedet ved å bruke -u flagg:

$ date
Lør 6. mars 16:59:33 GMT 2021
$ katt tmp
Hei Verden
$ ls -lu tmp
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Den siste linjen bekrefter at tiden for denne filen er forskjellig fra tidspunktet. Til slutt, bruk -c flagg for å se ctime:

$ date
Lør 6. mars 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r - r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

Denne gangen bekrefter vi at alle tre gangene er forskjellige og riktige: vi modifiserte, deretter åpnet, og endret deretter filen i den rekkefølgen.

Et alternativ til ls er stat kommando. Denne kommandoen viser detaljer på lavt nivå fra filens inode. Det gjør det lettere å sjekke alle tre gangene samtidig. Det kommer også rundt problemet med det uintuitive -u flagg. Her er et eksempel på utdata for samme fil:

$ stat tmp2
Fil: `` tmp2 ''
Størrelse: 13 Blokker: 8 IO Blokk: 4096 vanlig fil
Enhet: 801h / 2049d Inode: 327688 Koblinger: 1
Tilgang: (0644 / -rw-r - r--) Uid: (1000 / ubuntu) Gid: (1000 / ubuntu)
Tilgang: 2021-03-06 16: 59: 45.000000000 +0000
Endre: 2021-03-06 16: 57: 59.000000000 +0000
Endring: 2021-03-06 17: 02: 43.000000000 +0000

Hvordan oppdatere tidsstempler

De ta på kommandoen endrer endringene og tilgangstidene til en fil. Det er også en praktisk måte å lage en tom fil på, som den vil gjøre hvis filen ikke allerede eksisterer:

berør tmp

Som standard vil den stille klokkeslett og tid til gjeldende tid. Du kan angi en annen tid med -t flagg:

touch -t 202103061200 tmp

Du kan også stille inn kun tid eller tid med -m og -en flagg henholdsvis:

berør -t 202103061300 -m tmp

Merk at ctime alltid oppdateres når vi stiller inn atime eller mtime.

Hvordan finne filer basert på tidsstempler

De finne kommando er et annet verktøy som virker på tidsstempler. Det kan filtrere filer basert på atime, ctime eller mtime. For eksempel:

finne. -amin 15

finner filer du fikk tilgang til for nøyaktig 15 minutter siden, mens:

finne. -tidspunkt -2

finner filer som er endret de siste to dagene.

Linux holder rede på hver fil tre ganger

Den mest refererte filtidsstempelet er mtime. Dette er for eksempel datoen og klokkeslettet som en filoppføring viser. Men de to andre tidsstemplene kan også være nyttige, forutsatt at du forstår hva de viser til. Husk spesielt at ctime representerer endring tid, ikke opprettelse tid.

Kommandoer som berøring og stat er nyttige medlemmer av Linux kommandolinjeverktøykasse. Disse kommandoene vil forbedre Linux-arbeidsflyten din ved å tillate deg å opprette nye filer raskt.

E-post
Linux Commands Reference Cheat Sheet

Dette enkle juksearket vil hjelpe deg med å bli komfortabel med Linux-kommandolinjeterminalen på kort tid.

Relaterte temaer
  • Linux
  • Filbehandling
  • Linux Distro
Om forfatteren
Bobby Jack (33 artikler publisert)

Bobby er en teknologientusiast som jobbet som programvareutvikler i det meste av to tiår. Han brenner for spill, jobber som Reviews Editor i Switch Player Magazine, og er oppslukt av alle aspekter av online publisering og nettutvikling.

Mer fra Bobby Jack

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.