网站首页 > 技术教程 正文
Linux中没有命令可以直接查看
Linux系统与之前的Unix系统一样,都为每个文件维护三种不同的时间戳。然而,这些时间戳的语义常常让用户感到意外,而且它们并没有提供用户经常想要知道的信息。
Unix文件的时间戳,长期以来被POSIX所确立,被称为"atime"、"ctime"和"mtime"。atime时间戳旨在记录文件最后一次被访问的时间。然而,这一信息几乎从未被使用,且维护起来相当麻烦;Ingo Molnar曾将atime称为"有史以来最愚蠢的Unix设计想法"。因此,在当代系统中,atime通常被禁用,或至少回滚到更新不频繁的"relatime"模式。相反,mtime则有一定的意义;它告诉用户文件最后一次被修改的时间。因为修改文件需要写入,所以更新这个时间通常有用的,而且也是我们经常使用的。
那么剩下的ctime就有点奇怪了。不深入了解的用户可能会将ctime解释为"创建时间",但存储在那里的不是这个信息;相反,每当一个文件的元数据发生变化时,ctime就会更新。显然,这个信息的主要使用者是古老的dump工具,它想要知道文件的元数据是否发生了变化(这样的信息必须在增量备份中保存),但文件数据本身没有变化,不需要再次保存。多年来,使用dump的用户数量肯定已经减少了,以至于ctime最大的作用可能是混淆真正只想要知道文件创建时间的用户。
那么用户在哪里找到创建时间呢?他们找不到:Linux系统不存储该时件,也不提供应用程序访问它的接口。
然而,这种情况可能会改变。一些较新的文件系统(例如Btrfs和ext4)被设计有保存文件创建时间的空间。
文件系统有单独实现
后面一些文件系统里面单独实现了,就是给加了一个字段。下面的问答中,列举了常见的文件系统中添加的相应字段,比如ext4中的crtime。但是可以看到,我们现在经常使用的xfs里面没有添加这个字段。也就是说,在ext4中可以通过一些方法来得到文件的创建时间,但是xfs就没有办法了。
https://unix.stackexchange.com/questions/7562/what-file-systems-on-linux-store-the-creation-time/40093#40093
ext4文件系统中查看文件的创建时间
ext4的需要使用debugfs来看。先使用ls -i 文件名 来得到文件的inode
使用df -hT 文件名 来得到文件所在的分区
然后就可以使用 debugfs -R 'stat <inode>' 分区 来得到ext4文件系统额外记录的信息了。对比stat的输出,可以看到debugfs的输出里面ctime,atime,mtime都是一样的,然后多了crtime。
猜你喜欢
- 2025-05-02 Linux环境中的date命令使用技巧(linux的centos7配置java8环境变量)
- 2025-05-02 我在linux中高频使用的find命令回顾
- 2025-05-02 Linux touch命令:创建文件及修改文件时间戳
- 2025-05-02 在 Linux 中使用find 命令查找文件
- 2025-05-02 Linux命令学习——tail命令(linux系统tail指令)
- 2025-05-02 linux基础命令之timedatectl命令(linux timer.h)
- 2025-05-02 「Linux」linux常用基本命令(linux常用基本命令+例句)
- 2025-05-02 穿越时间·蓝点Linux历史回顾(蓝点系统)
- 2025-05-02 Glances - 一个用于Linux的高级实时系统监控工具
- 2025-05-02 「linux」定时器方案:红黑树、最小堆和时间轮的原理
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)