GNU/Linux >> Znalost Linux >  >> Linux

časové razítko, čas modifikace a čas vytvoření souboru

Existují 3 druhy „časových razítek“:

  • Přístup – poslední čas čtení souboru
  • Upravit – čas, kdy byl soubor naposledy upraven (obsah byl upraven)
  • Změnit – poslední změna metadat souboru (např. oprávnění)

K zobrazení těchto informací můžete použít stat který je součástí coreutils.

stat zobrazí vám také některé další informace, jako je zařízení, inody, odkazy atd.

Pamatujte, že tento druh informací velmi závisí na souborovém systému a možnostech připojení. Například pokud připojíte oddíl s noatime možnost, nebudou zapsány žádné přístupové informace.

Nástroj pro změnu časových razítek by byl touch .Existují některé argumenty pro rozhodnutí, které časové razítko změnit (např. -a pro přístupový čas, -m pro čas modifikace) a pro ovlivnění analýzy nového daného časového razítka.Viz man touch pro více podrobností.

touch může být užitečné v kombinaci s cp -u ("kopírujte pouze v případě, že je SOURCE soubor novější než cílový soubor nebo pokud cílový soubor chybí" ) nebo pro vytváření prázdných souborů značek.


Odpověď echox je platná, ale chci přidat informace týkající se času vytvoření souboru.

Podpora systému souborů

Některé systémy souborů podporují další položku v inode týkající se času vytvoření (nebo času narození). Vím, že ext4 podporuje tuto funkci a také JFS a BTRFS.

Většina nástrojů a API však ještě nebyla aktualizována, aby si tyto dodatečné informace přečetla. Takže i když tam může být, není přístupný.

Například na Ubuntu 12.04 LTS dostanu pro soubor, který jsem dnes vytvořil, následující:

$ echo Just another test > /tmp/mytest
$ sleep 3
$ touch /tmp/mytest
$ sleep 2
$ cat /tmp/mytest > /dev/null
$ stat /tmp/mytest 
[...]
Access: 2012-06-05 13:33:44.279774711 +0200
Modify: 2012-06-05 13:33:34.611893317 +0200
Change: 2012-06-05 13:33:34.611893317 +0200
 Birth: -
$ sudo debugfs -R 'stat /tmp/mytest' /dev/sda1
[...]
 ctime: 0x4fcdee8e:91e30114 -- Tue Jun  5 13:33:34 2012
 atime: 0x4fcdee98:42b417dc -- Tue Jun  5 13:33:44 2012
 mtime: 0x4fcdee8e:91e30114 -- Tue Jun  5 13:33:34 2012
crtime: 0x4fcdee46:01258f1c -- Tue Jun  5 13:32:22 2012
[...]

Můžete vidět, že novější funkce statistik má rodné pole, i když se výstup zdá nesprávný. A přes debugfs můžeme získat informace (crtime, protože jsem na souborovém systému ext4).

podpora statx

Od jádra 4.11 je nyní k dispozici nové systémové volání statx, kromě lepší podpory Y2038 nebo síťových souborových systémů přináší také několik dalších funkcí, jako je btime nebo čas narození (čas vytvoření) přístup. Podpora pro ext4 by měla být ve stejné verzi jádra 4.11.

V pozdějších verzích jádra byly k dispozici záplaty pro přidání podpory k tomuto novému systémovému volání:např. BTRFS a F2FS v jádře 4.13, SMB3 v 4.14, GFS2 v 4.15, NFS v 4.16 atd.

Nadcházející glibc poskytne volání funkce pro dotaz na toto rozhraní (viz zprávy Phoronix o podpoře glibc statx). Podporu této funkce v uživatelském prostoru tedy můžeme očekávat již brzy.


Linux
  1. Výstup do Stdout a zároveň Grep do souboru?

  2. Oprávnění a ukládání souborů?

  3. Co se počítá jako úprava nebo změna souboru?

  1. Přesměrování a výstup potrubí?

  2. Ubuntu – Linux – Čas změny souboru versus čas úpravy?

  3. Pochopení časových razítek souborů Mac

  1. Jak udělat Ls a pak seřadit výsledky podle data vytvoření?

  2. Vlákna a deskriptory souborů

  3. Příkaz ftp ukazuje jiný čas úpravy souboru