GNU/Linux >> Znalost Linux >  >> Linux

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

Bohužel váš úkol nebude obecně možný, protože pro každý z vašich souborů jsou uloženy pouze 3 odlišné časové hodnoty, jak je definováno standardem POSIX (viz Základní definice sekce 4.8 Aktualizace časů souborů)

Každý soubor má tři různá přiřazená časová razítka:čas posledního přístupu k datům, čas poslední úpravy dat a čas poslední změny stavu souboru. Tyto hodnoty jsou vráceny ve struktuře filecharacteristics struct stat , jak je popsáno v .

EDIT:Jak je uvedeno v komentářích níže, v závislosti na použitém souborovém systému mohou metadata obsahovat datum vytvoření souboru. Všimněte si však, že ukládání takových informací není standardní. V závislosti na tom může vést k problémům s přenositelností přesunu na jiný souborový systém, v případě, že ten, který se skutečně používá, jej přesto nějak ukládá.


odpověď mikyry je dobrá. Skutečnost je stejná jako to, co řekl.

[[email protected] test]$ stat test.txt
  File: `test.txt'
  Size: 0               Blocks: 8          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 588720      Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/   jason)   Gid: (  500/   jason)
Access: 2013-03-14 01:58:12.000000000 -0700
Modify: 2013-03-14 01:58:12.000000000 -0700
Change: 2013-03-14 01:58:12.000000000 -0700

pokud chcete ověřit, který soubor byl vytvořen jako první, můžete při vytváření série souborů strukturovat název souboru připojením systémového data.


Všimněte si, že pokud máte svůj souborový systém připojený pomocí noatime z důvodu výkonu, pak atime pravděpodobně ukáže čas vytvoření. Vzhledem k tomu, že noatime vede k masivnímu zvýšení výkonu (odstraněním zápisu na disk při každém čtení souboru), může to být rozumná možnost konfigurace, která vám také poskytne požadované výsledky.


ls -i file #output is for me 68551981
debugfs -R 'stat <68551981>' /dev/sda3 # /dev/sda3 is the disk on which the file exists

#results - crtime value
[[email protected] ~]# debugfs -R 'stat <68551981>' /dev/sda3
debugfs 1.41.12 (17-May-2010)
Inode: 68551981   Type: regular    Mode:  0644   Flags: 0x80000
Generation: 769802755    Version: 0x00000000:00000001
User:     0   Group:     0   Size: 38973440
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 76128
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x526931d7:1697cce0 -- Thu Oct 24 16:42:31 2013
 atime: 0x52691f4d:7694eda4 -- Thu Oct 24 15:23:25 2013
 mtime: 0x526931d7:1697cce0 -- Thu Oct 24 16:42:31 2013
**crtime: 0x52691f4d:7694eda4 -- Thu Oct 24 15:23:25 2013**
Size of extra inode fields: 28
EXTENTS:
(0-511): 352633728-352634239, (512-1023): 352634368-352634879, (1024-2047): 288392192-288393215, (2048-4095): 355803136-355805183, (4096-6143): 357941248-357943295, (6144
-9514): 357961728-357965098

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

  2. Linux – Jak zjistit datum vytvoření souboru?

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

  1. Získat čas vytvoření/vytvoření souboru??

  2. Získat mtime konkrétního souboru pomocí Bash?

  3. Jak získat formátovaný datum a čas v pythonu

  1. Get Age Of Given File?

  2. Změnit datum vytvoření souboru

  3. Jak nastavit Debian, aby automaticky aktualizoval čas a datum?