Pochopení časových razítek souborů Linux: mtime, ctime a atime

Pochopení časových razítek souborů Linux: mtime, ctime a atime

Operační systém Linux sleduje tři časová razítka pro každý soubor ve vašem systému. Tato časová razítka umožňují zjistit, kdy byl soubor naposledy aktualizován. Co ale všechny znamenají? A jak zjistíte tyto časy pro soubor? Je nějaký rozdíl, pokud jde o adresáře?





Pochopení atime, ctime a mtime může odpovědět na všechny tyto otázky. Toto jsou tři časová razítka, která unixové systémy souborů sledují. Pokud budete někdy potřebovat zjistit podrobnosti o tom, co a kdy se změnilo, čtěte dále.





Jaká jsou tři unixová časová razítka?

Ke každému souboru jsou přiřazena tři časová razítka. Linux je ukládá do souboru Unixový formát času který měří sekundy od epochy. Tři časová razítka se běžně označují jako atime, ctime a mtime.





The mtime je nejběžnější a často i nejužitečnější. Znamená upravený čas . Je to čas, kdy byl obsah souboru naposledy zapsán na disk.

Trochu jiné je ctime což znamená změnit čas . Toto časové razítko sleduje změny metadat, jako je vlastnictví a oprávnění. Zahrnuje přejmenování souboru - alespoň v typických moderních operačních systémech Linux. Aktualizuje se však také při změně obsahu souboru, takže je vždy aktuální jako mtime.



Třetí časové razítko je Doba , který ukládá poslední přístup k souboru.

jak zkontrolovat malware na iphone

Jak se časová razítka vztahují na adresáře

Adresář Linuxu je v podstatě seznam souborů v tomto adresáři. Vytvoření souboru v adresáři tedy aktualizuje mtime tohoto adresáře. Výpis souborů v adresáři pomocí ls příkaz například aktualizuje jeho přístupovou dobu. A stejně jako u souboru, změna oprávnění nebo názvu adresáře aktualizuje jeho čas.





Co čas vytvoření?

Možná vás překvapí, když zjistíte, že Linux jednoduše nezaznamenává čas vytvoření. Zpočátku byste to mohli předpokládat ctime znamená čas vytvoření. Stejně tak to můžete považovat za velmi užitečnou věc, kterou můžete zjistit.

Mnoho aplikací ukládá soubory tak, že je pokaždé vytvoří úplně od začátku. To by použití času vytvoření zavádělo.





Jak zobrazit různá časová razítka

Nejjednodušší způsob, jak získat informace o časovém razítku, je pomocí the ls příkaz . Výchozí dlouhý formát zobrazuje podrobnosti o 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 místo toho zobrazit pomocí -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í řádek potvrzuje, že mtime tohoto souboru se liší od atime. Nakonec použijte -C vlajka pro zobrazení ctime:

$ 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 potvrzujeme, že všechny tři časy jsou odlišné a správné: soubor jsme upravili, poté jsme k němu přistoupili a pak jsme jej změnili v uvedeném pořadí.

Alternativou k ls je Stát příkaz. Tento příkaz zobrazuje podrobnosti nízké úrovně z uzlu souboru. Usnadňuje to kontrolu všech tří najednou. Obchází také problém neintuitivního -u vlajka. Zde je příklad výstupu pro stejný soubor:

$ 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

Jak aktualizovat časová razítka

The dotek příkaz změní dobu úprav a přístup k souboru. Je to také pohodlný způsob vytvoření prázdného souboru, který provede, pokud soubor již neexistuje:

icloud mi nedovolí přihlásit se na iphone
touch tmp

Ve výchozím nastavení nastaví mtime a atime na aktuální čas. Pomocí tlačítka můžete nastavit jiný čas -t vlajka:

touch -t 202103061200 tmp

Můžete také nastavit pouze mtime nebo atime pomocí -m a -na vlajky:

touch -t 202103061300 -m tmp

Všimněte si, že ctime se vždy aktualizuje, když nastavíme atime nebo mtime.

Jak najít soubory podle časových razítek

The nalézt příkaz je další nástroj, který působí na časová razítka. Může filtrovat soubory na základě atime, ctime nebo mtime. Například:

find . -amin 15

najde soubory přístupné přesně před 15 minutami, zatímco:

find . -mtime -2

najde soubory upravené za poslední dva dny.

Linux sleduje každý soubor třikrát

Nejčastěji odkazovaným časovým razítkem souboru je mtime. Toto je například datum a čas, který zobrazuje výpis souborů. Ale i další dvě časová razítka mohou být užitečná, pokud rozumíte tomu, o čem mluví. Zejména si vždy pamatujte, že ctime představuje změna čas ne tvorba čas.

Příkazy jako dotek a statistika jsou užitečnými členy sady nástrojů příkazového řádku Linuxu. Tyto příkazy vylepší váš pracovní postup Linuxu tím, že vám umožní rychle vytvářet nové soubory.

Podíl Podíl tweet E-mailem Cheat Sheet referenční příručky Linuxu

Tento jednoduchý cheat list vám pomůže rychle se seznámit s terminálem příkazového řádku Linuxu.

kde prodávat staré počítačové součástky
Číst dále Související témata
  • Linux
  • Správa souborů
  • Linux Distro
O autorovi Bobby Jack(58 článků zveřejněno)

Bobby je technologický nadšenec, který pracoval jako vývojář softwaru po téměř dvě desetiletí. Je zapálený pro hraní her, pracuje jako editor recenzí časopisu Switch Player Magazine a je ponořen do všech aspektů online publikování a webového vývoje.

Více od Bobbyho Jacka

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru