如何在Bash/Debian中获取文件创建日期/时间?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (48)

我在DebianGNU/Linux6.0上使用Bash。是否有可能获得文件创建日期/时间?不是修改日期/时间。ls -lh a.txtstat -c %y a.txt两者都只给出修改时间。

提问于
用户回答回答于

不幸的是,您的任务通常是不可能实现的,因为按照POSIX标准的定义,每个文件只存储了3个不同的时间值

每个文件都有三个不同的关联时间戳:最后一次数据访问的时间、最后一次数据修改的时间以及文件状态上次更改的时间。这些值在文件特征结构中返回.

编辑:如下面的注释所述,根据所使用的文件系统,元数据可能包含文件创建日期。但是,这样的信息存储是不标准的。依赖于它可能会导致迁移到另一个文件系统的可移植性问题,以防实际使用的文件系统以某种方式存储它。

用户回答回答于
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
[root@loft9156 ~]# 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

扫码关注云+社区

领取腾讯云代金券