tar -cf没有保留确切的修改时间

时间:2016-07-18 15:07:31

标签: tar

使用-c创建tar存档时,修改时间似乎正在改变,特别是它会缩短小数点后的时间,使modtime只是它的整数值。

注意: ```

[localhost] $ mkdir test
[localhost] $ stat test
  File: ‘test’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Modify: 2016-07-18 17:01:33.116807520 -0400 # <------ Notice exact time
[localhost] $ tar -cf test.tar test
[localhost] $ tar -xf test.tar
[localhost] $ stat test
  File: ‘test’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Modify: 2016-07-18 17:01:33.000000000 -0400 # <------ Notice how time is rounded

(为了便于阅读,我从stat的输出中删除了不相关的部分)

我已经查询了man tar,但无法找到一个选项,可以在几纳秒内保留完全修改时间。有人可以解释为什么会发生这种行为?或者这是在焦油创建过程中预期的。

更新:到目前为止还没有运气,我尝试使用tar选项,但大多数处理时间的选项都与文件相关&#39;访问时间,而不是modtime。那些处理modtime的人改变 modtime,这不是我正在寻找的东西。

1 个答案:

答案 0 :(得分:1)

万一有人在谷歌搜索同一个问题时偶然发现这个问题(就像我做的那样):

解决方案(至少其中一个)是使用-H选项,如下所示:

https://unix.stackexchange.com/questions/397130/tar-how-to-preserve-timestamps-down-to-more-than-a-second-of-precision/397132#397132

tar(1)联机帮助页没有指出-H参数的实际含义;我认为,如果搜索可能的关键字(&#34;纳秒&#34;,&#34;第二&#34;,&#34;解决方案&#34;等)导致该段落的话,将会非常有用-H。