Linux-operativsystemet holder styr på tre tidsstempler for hver fil på dit system. Disse tidsstempler giver dig mulighed for at finde ud af, hvornår en fil sidst blev opdateret. Men hvad betyder de alle? Og hvordan finder du ud af disse tidspunkter for en fil? Er der en forskel, når det kommer til telefonbøger?

En forståelse af atime, ctime og mtime kan besvare alle disse spørgsmål. Dette er de tre tidsstempler, som Unix-filsystemer sporer. Hvis du nogensinde har brug for at finde ud af detaljer om, hvad der ændrede sig, og hvornår, så læs videre.

Hvad er de tre Unix-tidsstempler?

Hver fil har tre tidsstempler tilknyttet. Linux gemmer disse i Unix tidsformat der måler sekunder siden epoken. De tre tidsstempler kaldes ofte atime, ctime og mtime.

Det mtime er den mest almindelige og ofte den mest nyttige. Det står for ændret tid. Det er det tidspunkt, hvor filens indhold sidst blev skrevet til disken.

Lidt anderledes er ctime som står for ændre tid. Denne tidsstempel sporer metadataændringer som ejerskab og tilladelser. Det inkluderer omdøbning af en fil - i det mindste på typiske moderne Linux-operativsystemer. Men det opdateres også, når filens indhold ændres, så det er altid så opdateret som mtime.

Det tredje tidsstempel er en tid, som gemmer sidste gang nogen fik adgang til filen.

Hvordan tidsstempler gælder for telefonbøger

En Linux-mappe er i det væsentlige en liste over filerne i denne mappe. Så oprettelse af en fil inde i et bibliotek opdaterer den mappes mtime. Notering af filerne i biblioteket ved hjælp af ls kommandoen opdaterer f.eks. adgangstiden. Og som med en fil opdateres ændring af et biblioteks tilladelser eller navn dets ctime.

Hvad med skabelsestid?

Det kan overraske dig at lære, at Linux simpelthen ikke holder styr på oprettelsestiden. Du antager oprindeligt det ctime står for skabelsestid. Ligeledes tænker du måske på det som en meget nyttig ting at være i stand til at finde ud af.

Mange applikationer gemmer filer ved at oprette dem fra bunden hver gang. Dette ville gøre misvisende brug af skabelsestid.

Sådan får du vist de forskellige tidsstempler

Den enkleste måde at få tidsstempeloplysninger på er med det ls kommando. Standard langt format viser detaljer for mtime:

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

Du kan vise tidspunktet i stedet ved at bruge -u flag:

$ dato
Lør 6. mar 16:59:33 GMT 2021
$ kat tmp
Hej 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 sidste linje bekræfter, at tiden for denne fil er forskellig fra tidspunktet. Endelig skal du bruge -c flag for at se ctime:

$ dato
Lør 6. mar 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 gang bekræfter vi, at alle tre gange er forskellige og korrekte: vi ændrede, åbnede derefter og ændrede derefter filen i den rækkefølge.

Et alternativ til ls er stat kommando. Denne kommando viser detaljer på lavt niveau fra filens inode. Det gør det lettere at kontrollere alle tre gange på én gang. Det omgår også problemet med det uintuitive -u flag. Her er et eksempel på output for den samme fil:

$ stat tmp2
Fil: `` tmp2 ''
Størrelse: 13 Blokke: 8 IO Blok: 4096 almindelig fil
Enhed: 801h / 2049d Inode: 327688 Links: 1
Adgang: (0644 / -rw-r - r--) Uid: (1000 / ubuntu) Gid: (1000 / ubuntu)
Adgang: 2021-03-06 16: 59: 45.000000000 +0000
Rediger: 2021-03-06 16: 57: 59.000000000 +0000
Ændring: 2021-03-06 17: 02: 43.000000000 +0000

Sådan opdateres tidsstempler

Det røre ved kommandoen ændrer ændringerne og adgangstiderne for en fil. Det er også en bekvem måde at oprette en tom fil på, som den gør, hvis filen ikke allerede findes:

tryk på tmp

Som standard indstiller det tid og tid til det aktuelle tidspunkt. Du kan indstille en anden tid med -t flag:

touch -t 202103061200 tmp

Du kan også kun indstille mtime eller atime med -m og -en flag henholdsvis:

touch -t 202103061300 -m tmp

Bemærk, at ctime altid opdateres, når vi indstiller atime eller mtime.

Sådan finder du filer baseret på tidsstempler

Det finde kommando er et andet værktøj, der virker på tidsstempler. Det kan filtrere filer baseret på atime, ctime eller mtime. For eksempel:

finde. -amin 15

finder filer, der er åbnet for nøjagtigt for 15 minutter siden, mens:

finde. -mtime -2

finder filer, der er ændret inden for de sidste to dage.

Linux holder styr på hver fil tre gange

Den mest almindeligt refererede filtidsstempel er mtime. Dette er for eksempel datoen og klokkeslættet, som en filoversigt viser. Men de to andre tidsstempler kan også være nyttige, forudsat at du forstår, hvad de henviser til. Husk især, at ctime repræsenterer lave om tid, ikke skabelse tid.

Kommandoer som touch og stat er nyttige medlemmer af Linux kommandolinjeværktøjskassen. Disse kommandoer forbedrer din Linux-arbejdsgang ved at give dig mulighed for hurtigt at oprette nye filer.

E-mail
Linux Commands Reference Cheat Sheet

Dette enkle snydeark hjælper dig med at blive fortrolig med Linux-kommandolinjeterminalen på ingen tid.

Relaterede emner
  • Linux
  • Filhåndtering
  • Linux Distro
Om forfatteren
Bobby Jack (33 artikler offentliggjort)

Bobby er en teknologientusiast, der arbejdede som softwareudvikler i det meste af to årtier. Han brænder for spil, arbejder som Reviews Editor i Switch Player Magazine og er fordybet i alle aspekter af onlineudgivelse og webudvikling.

Mere fra Bobby Jack

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et trin mere !!!

Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.

.