tahzibi.jafar Asked: 2024-04-25 23:43:26 +0800 CST2024-04-25 23:43:26 +0800 CST 2024-04-25 23:43:26 +0800 CST linux 最后状态改变时间/最后修改时间 772 当我修改文件的内容时,例如,date > f.txt当我执行时,stat f.txt 我看到上次状态更改时间和 上次修改时间都发生了更改。 我正在寻找两种场景来查看一个时间戳的变化而不改变另一个 linux 1 个回答 Voted Best Answer harrymc 2024-04-26T00:21:21+08:002024-04-26T00:21:21+08:00 这是两种截然不同的时间戳: 修改是上次 修改文件内容mtime的时间戳,通常称为. 更改是上次更改文件inode的时间戳,例如更改权限、所有权、文件名、硬链接数量等元数据。它经常被称为ctime. 修改时间可以通过使用带有参数的touch命令来改变 -m。 有关使用 的示例touch,请参阅帖子 如何更改文件的修改/创建日期? 关于最后一次状态更改时间,请参阅帖子 如何更改文件的“更改”日期? 用户“Gilles SO - 别再作恶”的回答是: 您无法通过普通方法更改 ctime。这是设计使然:当您更改任何文件的元数据时,ctime 始终更新为当前值,并且无法强制使用不同的 ctime。要更改文件的 ctime,您需要执行以下操作之一: 将系统时间设置为您想要施加的ctime,然后触摸该文件,然后重置系统时间。 修改内核,添加更改ctime的接口。 直接访问磁盘映像(例如使用debugfs)并调整磁盘上的位(在安装文件系统时不要执行此操作)。 用户 Coren 的回答给出了确切的方法: 您有 jw013 指出的相关 SO 问题的答案,对于 extX,在未安装的磁盘上: # Update ctime debugfs -w -R 'set_inode_field /tmp/foo ctime 201001010101' /dev/sda1 # Drop vm cache so ctime update is reflected echo 2 > /proc/sys/vm/drop_caches
这是两种截然不同的时间戳:
修改是上次 修改文件内容
mtime
的时间戳,通常称为.更改是上次更改文件inode的时间戳,例如更改权限、所有权、文件名、硬链接数量等元数据。它经常被称为
ctime
.修改时间可以通过使用带有参数的touch命令来改变
-m
。有关使用 的示例
touch
,请参阅帖子 如何更改文件的修改/创建日期?关于最后一次状态更改时间,请参阅帖子 如何更改文件的“更改”日期? 用户“Gilles SO - 别再作恶”的回答是:
用户 Coren 的回答给出了确切的方法: