2012-04-16 47 views
3

任何人可以告訴我爲什麼unix不存儲文件創建時間? 因爲它存儲修改時間,更改時間和訪問時間,而不是創建時間,它是如此大的負擔嗎? 有什麼特別的理由嗎?unix中的文件創建時間

還是通過使用某種語言(任何編程語言)和一些系統調用我們可以得到一些文件創建時間?

+2

如果inode數據(如所有者,組模式等)未更改,則可以使用「ctime」字段(如果存在)。 – 2012-04-16 08:58:44

回答

5

我相信這樣的信息是inode存儲的責任,因此也是文件系統本身的限制。一個快速的谷歌搜索,事實證明ext4文件系統已經在其inode中爲該文件屬性添加了存儲。

ext4 timestamps

1

由於WhiteboardDev筆記,許多現代文件系統商店文件的創建時間,但它不是標準的SO訪問細節的方法有所不同。

至於具體的原因,它基本上是歷史性的。實際上,當許多這些API第一次被定義時,在70年代存儲太多元數據的一個負擔。 (值得一提的是,當前的文件系統並不總是更新「上次訪問時間」,因爲是負擔......)

+0

嗨斯蒂芬你可以請鏈接到不同的方法來獲取創建日期,這將是真正的真棒!我目前正在爲他們進行搜索。編輯:啊我認爲@ jlliagre列出他們是真的嗎? http://stackoverflow.com/a/10172234/1828637 – Noitidart 2015-05-21 09:46:18

1

統計將返回修改變化st_ctime 一旦文件被修改或它的主人改變了它的出處變化因此,所有的賭注都關閉的內容 DOS/NT是靠不住在這點上,你可以完全回收站的文件,它重寫它是一個命令行shell和創作的時間內全部不會改變

相關的元數據使用unix中的文件不能保證原始創建時間,但會保留最新版本的創建時間。如果您需要版本的文件,那麼該版本應該明確外部或內部

場st_ctime改變通過寫或通過設置inode信息 (即所有者,組,鏈接數,模式等)。

 struct stat { 
      dev_t  st_dev;  /* ID of device containing file */ 
      ino_t  st_ino;  /* inode number */ 
      mode_t st_mode; /* protection */ 
      nlink_t st_nlink; /* number of hard links */ 
      uid_t  st_uid;  /* user ID of owner */ 
      gid_t  st_gid;  /* group ID of owner */ 
      dev_t  st_rdev; /* device ID (if special file) */ 
      off_t  st_size; /* total size, in bytes */ 
      blksize_t st_blksize; /* blocksize for file system I/O */ 
      blkcnt_t st_blocks; /* number of 512B blocks allocated */ 
      time_t st_atime; /* time of last access */ 
      time_t st_mtime; /* time of last modification */ 
      time_t st_ctime; /* time of last status change */ 
     }; 
+0

嗨帕迪,你的意思是說,'st_ctime',「上次狀態改變的時間」,是獲得生育時間的可靠方法嗎? – Noitidart 2016-09-07 11:14:07

2

的主要原因Unix的不存儲創建時間是這樣的信息是有爭議的,因爲有一個什麼樣的文件創建日期應設置爲標準定義。

有些人希望創建時間來表示創建數據的時間(例如:jpeg照片被拍攝),從而在從備份複製或恢復文件時保留該時間。另一方面,一些其他人更喜歡創建這個文件系統對象(例如:inode)的時間。

前者完成後通常出現在文件內部(例如:EXIF)。

後者正是最近使用的文件系統提供:

  • UFS2/st_birthtime
  • ZFS/crtime
  • 的ext4/crtime
  • BTRFS/otime
  • HFS + /?

請注意,沒有協議來命名用於存儲此創建時間的字段。

+0

嗨jilliagre這是真棒謝謝分享!自從這篇文章已經過去幾年了,我想知道你是否可以用任何新信息更新它,比如你知道HFS +的一種方法,以及是否還有其他文件系統?謝謝!! – Noitidart 2015-05-21 09:56:11