如果多次将同一文件添加到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
Run Code Online (Sandbox Code Playgroud)
它会有意义,但我找不到任何相关的文档.我想知道知道的人是否知道,或者是否有人知道这不是真的情况?
tar 的一些文档是这样说的:
当您从存档中提取文件时,只有最后存储的版本才会出现在文件系统中。因为“--extract”(“-x”)按顺序从存档中提取文件,并覆盖文件系统中同名的文件,所以如果文件名在存档中出现多次,则该文件的最后一个版本将被删除。覆盖刚刚提取的先前版本。您应该避免稍后在存档中存储文件的旧版本。
我的理解是,除非您使用该--keep-old-files
选项,-x
否则总是会用存档中存储的最后一个文件覆盖。
编辑:另请参阅的 GNU 文档tar
。