如何改变时间戳的 ctime 属性

2020-06-28 20:55:09 +08:00
 dengyutongcn
rt,在迁移文件的时候时间戳会改变,只保留 Modify ( mtime ),为了避免在文件管理器里的混乱,我希望能从 mtime 复制到其他的所有属性( atime 、ctime 、mtime )。

但我看到通常使用的 touch 命令不能更改 ctime,而且只能精确到秒
所以有没有什么好方法来修改时间戳?
平台是 Android 手机,但好像跟 Linux 关系更大就发到这个节点
ps:要修改的大多是文档,所以 exif 什么的就行不通了
2524 次点击
所在节点    Linux
6 条回复
lululau
2020-06-28 21:23:37 +08:00
简单点的做法是修改目标系统的系统时间,麻烦一点应该得修改内核才行
ReVanTis
2020-06-28 21:31:00 +08:00
http://stroke.sourceforge.net/
没试过行不行,只是以前听人提起过…
fasionchan
2020-06-28 22:53:43 +08:00
写个程序调 utime 系统调用去改,可以精确到微秒,但是同样不能改 ctime

https://man7.org/linux/man-pages/man2/utime.2.html
vk42
2020-06-28 23:46:37 +08:00
如果有 debugfs 可以试试直接用 debugfs 改 inode 数据。不然就只能像#1 那样改系统时间了
soji18
2020-06-29 01:07:13 +08:00
purplewall
2020-07-01 22:46:04 +08:00
找到当前保存文件的文件系统代码,ioctl 里面加点内容,通过匹配 d_cache 的文件名,找到 inode,然后直接改 inode 里面的 atime ctime 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/685422

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX