Linuxi failide ajatemplite mõistmine: mtime, ctime ja atime

Linuxi failide ajatemplite mõistmine: mtime, ctime ja atime

Linuxi operatsioonisüsteem jälgib teie süsteemi iga faili kolme ajatemplit. Need ajatemplid võimaldavad teil teada saada, millal faili viimati värskendati. Aga mida need kõik tähendavad? Ja kuidas saate need ajad faili jaoks teada saada? Kas kataloogide osas on vahet?





Atime, ctime ja mtime mõistmine võib vastata kõigile neile küsimustele. Need on kolm ajatemplit, mida Unixi failisüsteemid jälgivad. Kui teil on kunagi vaja teada saada üksikasju selle kohta, mis ja millal muutus, lugege edasi.





Mis on kolm Unixi ajatemplit?

Iga failiga on seotud kolm ajatemplit. Linux salvestab need kausta Unixi ajavorming mis mõõdab sekundeid ajastust. Kolme ajatemplit nimetatakse tavaliselt atime, ctime ja mtime.





The mtime on kõige levinum ja sageli kõige kasulikum. See tähistab muudetud aeg . See on aeg, mil faili sisu viimati kettale kirjutati.

Veidi erinev on ctime mis tähistab aega muuta . See ajatempel jälgib metaandmete muutusi, nagu omandiõigus ja load. See hõlmab faili ümbernimetamist - vähemalt tüüpilistel kaasaegsetel Linuxi operatsioonisüsteemidel. Kuid seda värskendatakse ka siis, kui faili sisu muutub, nii et see on alati sama ajakohane kui mtime.



Kolmas ajatempel on aeg , mis salvestab viimati, kui keegi failile juurde pääses.

käivitage mac os Windows 10 -s

Kuidas ajatemplid kataloogidele rakenduvad?

Linuxi kataloog on sisuliselt selle kataloogi failide loend. Nii et faili loomine kataloogi sees värskendab selle kataloogi aega. Failide loend kataloogis, kasutades ls käsk, näiteks uuendab juurdepääsu aega. Ja nagu faili puhul, värskendab kataloogi lubade või nime muutmine selle ctime -d.





Aga loomise aeg?

Võib üllatada, kui saate teada, et Linux lihtsalt ei jälgi loomise aega. Võiks esialgu arvata, et ctime tähistab loomise aega. Samamoodi võite seda pidada väga kasulikuks asjaks, et seda teada saada.

Paljud rakendused salvestavad faile, luues need iga kord nullist. See muudaks loomise aja kasutamise eksitavaks.





Kuidas vaadata erinevaid ajatempleid

Lihtsaim viis ajatempliteabe saamiseks on the ls käsk . Vaikepikk vorming näitab mtime üksikasju:

$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo 'hello, world' > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Selle aja saate kuvada, kasutades nuppu -u lipp:

$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ 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

Viimane rida kinnitab, et selle faili mtime erineb ajast. Lõpuks kasutage -c ctime vaatamiseks lipp:

$ date
Sat Mar 6 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

Seekord kinnitame, et kõik kolm korda on erinevad ja õiged: me muutsime faili, seejärel avasime selle ja muutsime selles järjekorras.

Alternatiiv ls -le on osariik käsk. See käsk kuvab faili sisendist madala taseme üksikasjad. See hõlbustab kõigi kolme korra korraga kontrollimist. See väljub ka ebaintuitiivse probleemist -u lipp. Siin on näide sama faili kohta:

$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000

Kuidas ajatemplid värskendada

The puudutada käsk muudab faili muutmise ja juurdepääsu aegu. See on ka mugav viis tühja faili loomiseks, mida ta teeb, kui faili pole veel olemas:

iphone kõlar ei tööta kõnede ajal
touch tmp

Vaikimisi määrab see mtime ja atime praeguse aja. Klahviga saate määrata erineva aja -t lipp:

touch -t 202103061200 tmp

Samuti saate klahviga määrata ainult mtime või atime -m ja -juurde vastavalt lipud:

touch -t 202103061300 -m tmp

Pange tähele, et ctime värskendatakse alati, kui määrame atime või mtime.

Kuidas faile ajatemplite põhjal leida?

The leida käsk on veel üks tööriist, mis toimib ajatemplite puhul. See võib filtreerida faile atime, ctime või mtime alusel. Näiteks:

find . -amin 15

leiab faile, millele pääsesid ligi 15 minutit tagasi, samal ajal:

find . -mtime -2

leiab viimase kahe päeva jooksul muudetud faile.

Linux jälgib iga faili kolm korda

Kõige sagedamini viidatud faili ajatempel on mtime. See on kuupäev ja kellaaeg, mida näiteks faililoend näitab. Kuid ka ülejäänud kaks ajatemplit võivad olla kasulikud, kui saate aru, millele nad viitavad. Eelkõige pidage alati meeles, et ctime tähistab muutus aega, mitte loomine aega.

Sellised käsud nagu touch ja stat on kasulikud Linuxi käsurea tööriistakasti liikmed. Need käsud parandavad teie Linuxi töövoogu, võimaldades teil kiiresti uusi faile luua.

Jaga Jaga Piiksuma E -post Linuxi käskude teabeleht

See lihtne petuleht aitab teil Linuxi käsureaterminaliga kiiresti hakkama saada.

mida teha, kui Internetis on igav
Loe edasi Seotud teemad
  • Linux
  • Failihaldus
  • Linux Distro
Autori kohta Bobby Jack(58 artiklit avaldatud)

Bobby on tehnoloogiahuviline, kes töötas enam kui kaks aastakümmet tarkvaraarendajana. Ta on kirglik mängude vastu, töötab ajakirja Switch Player ülevaadete toimetajana ning on süvenenud kõikidesse veebipõhiste avaldamise ja veebiarenduse aspektidesse.

Veel Bobby Jackilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin