【问题标题】:extracting from a tar file with duplicate entry names从具有重复条目名称的 tar 文件中提取
【发布时间】:2022-04-06 21:11:36
【问题描述】:

如果您多次将同一个文件添加到一个 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

这样做是有道理的,但我找不到任何相关的文档。我想知道是否有知情人士可能知道,或者是否有人知道这是不正确的情况?

【问题讨论】:

    标签: bash tar


    【解决方案1】:

    Some documentation for tar 这么说:

    当您从存档中提取文件时,只有最后存储的版本 将在文件系统中结束。因为 '--extract' ('-x') 提取 按顺序从存档中的文件,并覆盖具有相同的文件 文件系统中的名称,如果一个文件名在一个文件中出现多次 归档文件的最后一个版本将覆盖以前的版本 刚刚提取的版本。你应该避免储存 存档中较旧版本的文件。

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

    编辑:另见GNU documentation for tar。

    【讨论】:

    • 另请参阅手册tar Options 部分中的--occurrence。
    猜你喜欢
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多