复制文件时间戳

复制文件时间戳

我经常复制文件,每次复制文件时,我都希望它们的元数据(特别是告诉我文件创建时间的元数据)与副本保持一致。在 Windows 上,我通常只使用 robocopy 来实现这一点。

然而据我所知,在 ubuntu 上,它只是使文件创建的时间戳与文件最后修改的时间戳相同。

所以我的问题是 ubuntu 是否实际存储了文件创建的时间戳?

我可以使用 chmod、cp -p 或一些 FOSS 来复制元数据吗?我正在尝试尽可能停止使用 Windows。

到目前为止,我已经搜索过论坛并找到了类似问题的这些答案,但我还没有测试过其中的任何一个: 如何仅复制文件属性(元数据)而不复制文件的实际内容?

avconv 如何复制所有流并合并元数据(修复创建日期)?

答案1

支持哪些特定的元数据取决于文件系统。

Ubuntu 中的默认文件系统是 ext4,支持创建时间 (crtime),但没有简单的方法来查看它,它也不是可以设置为任意值的东西。因此,在复制文件时不会保留它,并且它应该被保留是值得怀疑的,因为它是用来指示文件条目的创建时间,而不是内容文件的。

正如您注意到的,更改时间(ctime)保留。这是文件元数据的最后更改时间,mtime 与文件内容的相同。

其他几个 Linux 文件系统也存储了 crtime,但我不知道有什么方法可以用简单的工具来查看该时间,只能通过在原始设备上以 root 身份执行 debugfs。而且正如我所说,无论如何,复制文件时都无法保留它。

我认为,您将不得不放弃创建文件的时间。

相关内容