Linux文件创建时间

昨天把一个没有顶层路径的压缩包解压了,文件混合在了当前路径,想通过时间找到新解压出来的文件删掉,因此有了此文。

Linux文件大家熟知的有三个时间:
Atime访问时间,可以禁用此时间的更新减轻内核的工作 ls -lu
mtime修改时间,文件内容修改的时间 ls -l
ctime状态改变时间,文件内容 和 文件的信息(权限等)改变的时间ls -lc

没有创建时间,用stat命令查看文件:

root@hare:~# stat a
  File: ‘a’
  Size: 1913      	Blocks: 8          IO Block: 4096   regular file
Device: fc00h/64512d	Inode: 58834       Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-01-15 21:58:03.057388606 +0800
Modify: 2018-01-15 21:57:57.233393198 +0800
Change: 2018-01-15 21:57:57.237393195 +0800
 Birth: -

有个Birth时间,但是为空?经搜索发现, 据说BSD 和 Cygwin支持Birth,Linux需要等到内核提供xstat()接口才行。http://lists.gnu.org/archive/html/bug-findutils/2011-11/msg00015.html

不过万能的网友还发现了另外一个方式(ext4文件系统下测试):

root@hare:~# ls -i a
58826 a
root@hare:~# debugfs -R 'stat <58826>' /dev/mapper/tiny--vg-root
Inode: 58826   Type: regular    Mode:  0644   Flags: 0x80000
Generation: 4107976241    Version: 0x00000000:00000001
User:     0   Group:     0   Size: 3
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 8
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x5a600348:b92f2880 -- Thu Jan 18 10:15:36 2018
 atime: 0x5a60037f:2bff12cc -- Thu Jan 18 10:16:31 2018
 mtime: 0x5a6002ef:8c67dd00 -- Thu Jan 18 10:14:07 2018
crtime: 0x5a600173:90494cdc -- Thu Jan 18 10:07:47 2018
Size of extra inode fields: 28
EXTENTS:
(0):285456
(END)

使用debugfs用inode号查看,会发现一个crtime,这就是创建时间了。

备注:文件被修改,mtime和ctime会同时被改变
如果做测试,修改用echo 'hello' > file,不要用vim,vim会创建新文件inode就变了。

最后回到开始我的问题,因为解压出来的文件是新创建的,他们的inode信息都是新的,没有修改内容和权限的情况下,我们可以认为ctime就是创建时间,atime和mtime一般会从压缩包继承出来。

转载于:https://my.oschina.net/tinyhare/blog/1608946

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值