我有一个过程,它创建一个 tar 文件,其中包含需要更新的文件的副本。
我想在用新文件覆盖之前备份现有文件。
我试过了
tar cf backup.tar -T `tar tf updated.tar`
这不起作用。如果我将 tar tf 的输出通过管道传输到文件,然后将其用作 -T 参数,它就可以工作:
tar tf updated.tar > list; tar cf backup.tar -T list
但我觉得我应该能够用一个命令完成此操作。可能吗?
答案1
指定标准输入作为输入文件,例如:
tar tf 更新版本.tar | tar cf 备份版本.tar -T -
答案2
-T 选项专门用于查找文件,而不是列表。您的第一次尝试将列表传递给 -T,这可能是它不起作用的原因。我会尝试类似以下方法:
tar tf 更新.tar | xargs tar cf 备份.tar
答案3
我使用这个命令:
tar cf backup.tar `tar tf updated.tar`