1

有没有办法在不更改 B 时间戳的情况下将文件 A 复制到目录 B 中?如果是,那是什么?

编辑:

更大的目标:我正在研究我一年多前写的一些代码。我发现我所做的某些事情总是会让我未来的自己感到困惑。我想在那里添加一个 README 文件来解释问题。但我想保留上次在该目录中工作的时间。

最后:

感谢您的两个答案。我最终做了“touch -r B/newestoldfile B”,这对我的目的来说已经足够好了。尽管就像有人指出的那样,这并不是在所有情况下对我的问题的确切答案。我对两个答案都投了赞成票,但不得不选择接受。我选择了简要提到 -r 选项的那个:)

4

3 回答 3

3

捕获B目录的旧mtime。然后移动文件,然后使用touch命令用您存储的旧 mtime 重写 B 目录的 mtime。

old_mtime=$(stat -c%Y B)
mv A B
touch -d"$(date --date="@$old_time")" B

我们使用@$old_time创建$old_time自纪元以来的秒数表示的日期,这就是stat给我们的。

于 2013-01-09T22:26:39.393 回答
2

您可以在复制之前从目录中获取时间戳,stat -c %Y然后使用touch命令修改之后的时间戳。

如果您只想将时间戳从目录 A 复制到 B :

touch -r A B
于 2013-01-09T22:20:46.540 回答
1

当你编码时,你应该使用像GitMercurialSubversion这样的源代码控制系统。它允许您创建项目文件的存储库,编辑文件,注册版本并注释您所做的更改,最终将编辑的文件合并到项目中,使用分布式系统将其托管在云中。

其他人已经参考您提到的方法正确回答了,但我想给您一个更好的建议,使用您将来最好使用的另一种解决方案。

于 2013-01-09T22:45:15.180 回答