文档章节

Linux文件创建时间

tinyhare
 tinyhare
发布于 2018/01/18 11:03
字数 520
阅读 213
收藏 0

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

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一般会从压缩包继承出来。

© 著作权归作者所有

tinyhare

tinyhare

粉丝 8
博文 23
码字总数 22825
作品 0
东城
运维
私信 提问
在 Linux 上创建文件的 10 个方法

我们都知道,在 Linux 上,包括设备在内的一切都是文件。Linux 管理员每天应该会多次执行文件创建活动(可能是 20 次,50 次,甚至是更多,这依赖于他们的环境)。如果你想 在Linux上创建一个...

作者: Vinoth Kumar
2019/02/18
0
0
在 Linux 下 9 个有用的 touch 命令示例

命令用于创建空文件,也可以更改 Unix 和 Linux 系统上现有文件时间戳。这里所说的更改时间戳意味着更新文件和目录的访问以及修改时间。 让我们来看看 命令的语法和选项: 语法: 命令中使用...

作者: Pradeep Kumar
2018/05/02
0
0
每个 Linux 新手都应该知道的 10 个命令

通过这 10 个基础命令开始掌握 Linux 命令行。 你可能认为你是 Linux 新手,但实际上并不是。全球互联网用户有 3.74 亿,他们都以某种方式使用 Linux,因为 Linux 服务器占据了互联网的 90%。...

作者: Sam Bocetta
2018/05/02
0
0
专业地攻击:优秀黑客的Linux基础,part 2(创建目录和文件)

在我第一篇关于Linux基础的教程里面讨论了黑客使用Linux的重要性以及Linux的文件系统结构。我们还简单地了解了cd等基本命令的用法。在这片教程里我将会花一些时间来讲解创建目录,列举目录,...

djokary
2014/01/22
673
0
全面了解安装使用Linux下的日志文件系统

文件系统是用来管理和组织保存在磁盘驱动器上的数据的系统软件,其实现了数据完整性的保证,也就是保证写入磁盘的数据和随后读出的内容的一致性。除了保存以文件方式存储的数据以外,一个文件...

JavaGG
2009/05/23
433
0

没有更多内容

加载失败,请刷新页面

加载更多

WPF中的StaticResource和DynamicResource有什么区别?

在WPF中使用画笔,模板和样式等资源时,可以将它们指定为StaticResources <Rectangle Fill="{StaticResource MyBrush}" /> 或者作为DynamicResource <ItemsControl ItemTemplate="{DynamicR......

javail
30分钟前
49
0
Day07继承中的面试题 答案

1. 每一个构造方法的第一条语句默认都是:super() Object类最顶层的父类。 class Zi extends Fu{ public int num = 20; public Zi(){ //super(); System.out.println("zi"); } 2.class Test......

Lao鹰
35分钟前
42
0
每天AC系列(四):四数之和

1 题目 Leetcode第18题,给定一个数组与一个target,找出数组中的四个数之和为target的不重复的所有四个数. 2 暴力 List<List<Integer>> result = new ArrayList<>();if (nums.length == 4 &......

Blueeeeeee
45分钟前
54
0
git clone --mirror和git clone --bare有什么区别

git clone帮助页面上有关于--mirror : 设置远程存储库的镜像。 这意味着--bare 。 但没有详细介绍--mirror克隆与--bare克隆--mirror不同。 #1楼 克隆将从远程服务器复制参考,并将其填充到名...

技术盛宴
今天
72
0
代码生成器技术乱弹二十六,未来之野望,未实现的功能:动态Controller名字后缀

现在,光1.5.0的Controller后缀是固定的。比如:UserController, PrivilegeController之类的。而动态Controller名字后缀功能实现后,您只需要定义 controllernamingsuffix:Adaoter Control...

火箭船
今天
53
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部