GNU/Linux >> Znalost Linux >  >> Linux

Linux – Jak zjistit datum vytvoření souboru?

Chci zjistit datum vytvoření konkrétního souboru, ne datum modifikace nebo datum přístupu.

Zkoušel jsem to pomocí ls -ltrh a stat filename .

Přijatá odpověď:

stat -c '%w' file na souborových systémech, které uchovávají čas vytvoření.

Všimněte si, že na Linuxu to vyžaduje coreutils 8.31, glibc 2.28 a verze jádra 4.11 nebo novější.

Standard POSIX definuje pouze tři odlišná časová razítka, která mají být uložena pro každý soubor:čas posledního přístupu k datům, čas poslední úpravy dat a čas poslední změny stavu souboru.

Moderní linuxové souborové systémy, jako je ext4, Btrfs, XFS (v5 a novější) a JFS, ukládají čas vytvoření souboru (neboli čas narození), ale používají jiné názvy pro příslušné pole (crtime v ext4/XFS, otime v Btrfs a JFS). Linux poskytuje rozhraní systémového volání statx(2) pro získání času narození souboru pro souborové systémy, které jej podporují od verze jádra 4.11. (Takže i když byla do souborového systému přidána podpora doby vytváření, některá nasazená jádra ji nepodporovala okamžitě, ani po přidání nominální podpory pro danou verzi souborového systému, např. XFS v5.)

Jak zdůraznili Craig Sanders a Mohsen Pahlevanzadeh, stat podporuje %w a %W specifikátory formátu pro zobrazení času narození souboru (ve formátu čitelném pro člověka, respektive v sekundách od epochy) před coreutils verze 8.31. Nicméně coreutils stat používá statx() je-li k dispozici systémové volání pro načtení času narození pouze od verze 8.31.
Před coreutils verze 8.31 stat přistupoval k času narození pomocí get_stat_birthtime() poskytuje gnulib (v lib/stat-time.h ), který získá čas narození z st_birthtime a st_birthtimensec pole stat struktura vrácená stat() systémové volání. Zatímco například systémy BSD (a v rozšíření OS X) poskytují st_birthtime přes stat , Linux ne. To je důvod, proč stat -c '%w' file výstupy - (označující neznámý čas vytvoření) v systému Linux před coreutils 8.31 i pro souborové systémy, které interně ukládají čas vytvoření.

Jak zdůrazňuje Stephane Chazelas, některé souborové systémy, jako je ntfs-3g, odhalují dobu vytvoření souboru prostřednictvím rozšířených atributů souboru.


Linux
  1. Linux – Jak zjistit datum vytvoření souboru na logickém svazku Ntfs?

  2. Jak v Linuxu odstraníte soubory starší než konkrétní datum?

  3. Jak zjistit, které časové pásmo v Linuxu?

  1. Jak najít a seřadit soubory na základě data a času úpravy v Linuxu

  2. Jak najít soubor v Linuxu

  3. Získejte čas na vytváření souborů s Pythonem na linuxu

  1. Jak přesunout soubor v Linuxu

  2. Jak najít soubory v Linuxu

  3. Jak získat datum/čas vytvoření souboru v Bash/Debian?