查询 Linux 文件创建时间
通常我们使用 ls -l 命令看到的时间是文件的最后修改时间, 那么如何查看文件的创建时间呢?
在 POSIX 文件系统, 文件有如下4个属性:
- ctime: (change)文件属性变化时间: 包括文件内容变化, 文件属性变化, 文件名变化,文件位置变化等.
- atime: (access)文件最后被访问时间.
- mtime: (modify)文件内容最后修改时间.
- crtime: (create)文件创建时间.
通过 stat <文件名> 可以查看前面3个时间:
eric@host:~$ stat test.txt
File: 'test.txt'
Size: 5 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 1063236 Links: 1
Access: (0777/-rwxrwxrwx) Uid: (110061216/ xiatian) Gid: (110061216/ xiatian)
Access: 2020-02-05 01:45:37.045123935 -0700
Modify: 2020-02-05 01:43:27.147481567 -0700
Change: 2020-02-05 01:46:55.609375115 -0700
Birth: -
可是文件的创建时间为空, 如果需要查看文件创建时间, 可以通过下面的方式:
- 通过 ls -i <文件名> 或者 stat <文件名> 获取文件的 inode ID, 比如上面的 1063236
查看文件所在的文件系统
eric@host:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.9G 0 7.9G 0% /dev
tmpfs 1.6G 169M 1.5G 11% /run
/dev/vda1 75G 15G 58G 20% /
tmpfs 7.9G 52K 7.9G 1% /dev/shm通过 debugfs 查看 (下面的 crtime 就是创建时间)
sudo debugfs -R 'stat <1063236>' /dev/vda1
Inode: 1063236 Type: regular Mode: 0777 Flags: 0x80000
Generation: 1248641795 Version: 0x00000000:00000001
User: 110061216 Group: 110061216 Size: 5
File ACL: 0 Directory ACL: 0
Links: 1 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x5e3a80ff:91494e2c -- Wed Feb 5 01:46:55 2020
atime: 0x5e3a80b1:0ac2257c -- Wed Feb 5 01:45:37 2020
mtime: 0x5e3a802f:23298f7c -- Wed Feb 5 01:43:27 2020
crtime: 0x5e3a7f96:bf9070f4 -- Wed Feb 5 01:40:54 2020
Size of extra inode fields: 32
EXTENTS:
(0):715060
(END)
参考:
https://www.tecmint.com/debugfs-command-show-file-creation-time-in-linux/
http://wisercoder.com/knowing-difference-mtime-ctime-atime/