GNU tar:如何在 --listed-incremental 生效时混合包含和排除?

GNU tar:如何在 --listed-incremental 生效时混合包含和排除?

我有一个tar命令需要混合“包含”和“排除”操作。这是 - 当使用时不能--listed-incremental完美工作,但与以下组合时则不然--listed-incremental

我尝试过的:

  • 设置测试场景

    /tmp/tartest$ rm * ; touch a b
    
  • --exclude a include (简单a)按预期工作(a被排除):

    /tmp/tartest$ gtar cvf test.tar --exclude a a b
    b
    
  • 包括(简单的a--exclude a 按预期工作(包括a在内):

    /tmp/tartest$ gtar cvf test.tar a --exclude a a b
    a
    b
    
  • --exclude a include (简单的a)按预期工作(a被排除),即使--listed-incrementalis 正在运行:

    /tmp/tartest$ rm snapshot ; gtar cvf test.tar --listed-incremental=snapshot --exclude a a b
    b
    
  • 包括(简单的a确实--exclude a不是按预期工作(a不是包括)正在--listed-incremental运行:

    /tmp/tartest$ rm snapshot ; gtar cvf test.tar --listed-incremental=snapshot a --exclude a a b
    b
    
    ### Where is a???
    
  • 对于 1 级增量备份,同样成立(但对这个问题不起作用)。

  • 我的版本是1.34:

    /tmp/tartest$ gtar --version
    tar (GNU tar) 1.34
    

我将跳过提及我所做的更多测试(显然我真正的命令行更复杂)。

问题

GNU tar 1.34 是 2021 年 3 月发布的。我无法想象这个非常基本的功能是tar.我浏览了bug-tar邮件列表,发现没有任何相关提及“增量”、“包含”或“排除”。我究竟做错了什么;我该如何修复我的命令行,以便在命令行上a出现相应的命令行之前将其包含在存档中?--exclude

相关内容