从具有重复条目名称的tar文件中提取

时间:2015-10-27 18:42:20

标签: bash tar

如果多次将同一文件添加到tar文件中,然后提取该文件,是否可以保证提取的版本与上次添加的版本相同?

~/tmp> echo hi > foo
~/tmp> tar -cf bar.tar foo
~/tmp> echo bye > foo
~/tmp> tar -uf bar.tar foo 
~/tmp> tar -tf bar.tar
foo
foo
~/tmp> rm foo
~/tmp> tar -xf bar.tar foo
~/tmp> cat foo
bye

它会有意义,但我找不到任何相关的文档。我想知道知道的人是否可能知道,或者有人知道这种情况不是真的吗?

1 个答案:

答案 0 :(得分:2)

Some documentation for tar说:

  

从存档中提取文件时,只显示最后存储的版本   将在文件系统中结束。因为' - 提取' (' -x')摘录   归档中的文件,并使用相同的文件覆盖文件   文件系统中的名称,如果文件名出现多次   归档文件的最后一个版本将覆盖以前的版本   刚刚提取的版本。你应该避免存储   存档中稍后的旧版本文件。

我的理解是,除非您使用-k选项,否则-x将始终使用存档中存储的最后一个文件进行覆盖。

修改:另请参阅GNU documentation for tar