Pochopenie časových značiek súborov Linux: mtime, ctime a atime

Pochopenie časových značiek súborov Linux: mtime, ctime a atime

Operačný systém Linux sleduje tri časové pečiatky pre každý súbor vo vašom systéme. Tieto časové pečiatky vám umožňujú zistiť, kedy bol súbor naposledy aktualizovaný. Čo však všetky znamenajú? A ako zistíte tieto časy pre súbor? Je rozdiel v adresároch?





Pochopenie atime, ctime a mtime môže odpovedať na všetky tieto otázky. Toto sú tri časové pečiatky, ktoré sledujú súborové systémy Unix. Ak budete niekedy potrebovať zistiť podrobnosti o tom, čo a kedy sa zmenilo, čítajte ďalej.





Aké sú tri časové pečiatky Unixu?

Každý súbor má priradené tri časové pečiatky. Linux ich ukladá do súboru Unixový formát času ktorý meria sekundy od epochy. Tri časové pečiatky sa bežne označujú ako atime, ctime a mtime.





The mtime je najbežnejší a často aj najužitočnejší. To znamená upravený čas . Je to čas, kedy bol obsah súboru naposledy zapísaný na disk.

Trochu odlišný je ctime čo znamená zmeniť čas . Táto časová pečiatka sleduje zmeny metadát, ako napríklad vlastníctvo a povolenia. Zahŕňa premenovanie súboru - prinajmenšom v typických moderných operačných systémoch Linux. Aktualizuje sa však aj vtedy, keď sa zmení obsah súboru, takže je vždy aktuálny ako mtime.



Tretia časová pečiatka je Doba , ktorá ukladá posledný prístup k súboru.

prečo na mojom macu nefunguje obrázok

Ako sa časové pečiatky uplatňujú na adresáre

Adresár Linuxu je v podstate zoznam súborov v tomto adresári. Vytvorením súboru v adresári sa teda aktualizuje mtime tohto adresára. Zoznam súborov v adresári pomocou súboru ls príkaz napríklad aktualizuje svoj prístupový čas. A rovnako ako v prípade súboru, zmena povolení alebo názvu adresára aktualizuje jeho čas.





Čo čas stvorenia?

Možno vás prekvapí, že Linux jednoducho nesleduje čas vytvorenia. Na začiatku to môžete predpokladať ctime znamená čas vytvorenia. Rovnako to môžete považovať za veľmi užitočnú vec, ktorú môžete zistiť.

Mnoho aplikácií ukladá súbory tak, že ich zakaždým vytvorí úplne od začiatku. Použitie času vytvorenia by preto bolo zavádzajúce.





Ako zobraziť rôzne časové pečiatky

Informácie o časovej pečiatke získate najjednoduchšie pomocou the ls príkaz . Predvolený dlhý formát zobrazuje podrobnosti o čase mtime:

$ 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

Atime môžete namiesto toho zobraziť pomocou -u vlajka:

$ 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

Posledný riadok potvrdzuje, že mtime tohto súboru sa líši od času atime. Nakoniec použite príponu -c vlajka na zobrazenie času:

$ 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

Tentokrát potvrdzujeme, že všetky tri časy sú odlišné a správne: súbor sme upravili, potom sme k nemu pristúpili a potom sme ho zmenili v uvedenom poradí.

Alternatívou k ls je štát príkaz. Tento príkaz zobrazuje detaily nízkej úrovne z inodu súboru. Uľahčuje kontrolu všetkých troch naraz. Tiež obchádza problém neintuitívneho -u vlajka. Tu je príklad výstupu pre ten istý súbor:

$ 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

Ako aktualizovať časové pečiatky

The dotýkať sa príkaz zmení zmeny a prístupové časy súboru. Je to tiež pohodlný spôsob vytvorenia prázdneho súboru, ktorý urobí, ak súbor ešte neexistuje:

negatívne vplyvy sociálnych médií na spoločnosť
touch tmp

V predvolenom nastavení nastaví mtime a atime na aktuálny čas. Pomocou tlačidla môžete nastaviť iný čas -t vlajka:

touch -t 202103061200 tmp

Môžete tiež nastaviť iba mtime alebo atime pomocou -m a -do vlajky:

touch -t 202103061300 -m tmp

Všimnite si toho, že ctime sa vždy aktualizuje, keď nastavíme atime alebo mtime.

Ako nájsť súbory na základe časových pečiatok

The Nájsť príkaz je ďalším nástrojom, ktorý pôsobí na časové pečiatky. Dokáže filtrovať súbory na základe atime, ctime alebo mtime. Napríklad:

find . -amin 15

vyhľadá súbory prístupné presne pred 15 minútami, pričom:

find . -mtime -2

nájde súbory upravené za posledné dva dni.

Linux sleduje každý súbor trikrát

Najčastejšie odkazovanou časovou pečiatkou súboru je mtime. Toto je dátum a čas, kedy sa napríklad zobrazuje zoznam súborov. Ale aj ďalšie dve časové pečiatky môžu byť užitočné, ak rozumiete tomu, o čom hovoria. Hlavne si vždy pamätajte, že ctime predstavuje zmeniť čas, nie stvorenie čas.

Príkazy, ako sú dotykové a statické, sú užitočnými členmi súboru nástrojov príkazového riadka Linuxu. Tieto príkazy zlepšia váš pracovný postup Linuxu tým, že vám umožnia rýchlo vytvárať nové súbory.

zdieľam zdieľam Tweet E -mail Cheat Sheet pre Linux

Tento jednoduchý cheat vám pomôže rýchlo si vybaviť terminál príkazového riadka Linuxu.

Google Play na Amazon Fire HD 10
Čítajte ďalej Súvisiace témy
  • Linux
  • Správa súborov
  • Linux Distro
O autorovi Bobby Jack(58 publikovaných článkov)

Bobby je technologický nadšenec, ktorý pracoval ako vývojár softvéru väčšinu dvoch desaťročí. Má nadšenie pre hry, pracuje ako editor recenzií v časopise Switch Player a je ponorený do všetkých aspektov online publikovania a webového vývoja.

Viac od Bobbyho Jacka

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber