有没有办法使用 chown/chgrp 而不修改上次修改日期?

有没有办法使用 chown/chgrp 而不修改上次修改日期?

我正在从旧硬盘驱动器恢复文件,并且需要保留驱动器的上次修改日期。他们更新的原因是因为我需要将文件的所有权更改为新用户。

答案1

当所有者更改时,mtime(文件修改时间)不应更改(atime 或访问时间也不应更改)。这将是 inode 信息的更改,反映在 ctime 字段中。

如果您发现在您的系统上,chown(2)chown(1)chgrp(1))确实更改了 mtime 或 atime 并且您担心保留 mtime 和 atime,那么您需要编写代码来收集当前时间(使用stat(2)stat(1)),然后恢复他们(使用utimes(2)touch(1))。

AFAIK,您无法控制 ctime 的设置。如果索引节点发生更改,系统会记录更改的时间,并且不允许您更改它。

相关内容