【发布时间】:2020-06-12 22:57:06
【问题描述】:
我想用 较新的 文件更新现有的 tar 文件。
在 GNU,我读到:
4.2.3 更新存档
在上一节中,您学习了如何使用“--append”添加一个 文件到现有存档。一个相关的操作是“--update”(“-u”)。 “--update”操作通过比较日期来更新 tar 存档 指定档案成员的日期与文件的日期相对应 一样的名字。如果文件的修改时间比 存档成员,然后将文件的较新版本添加到 存档(与“--append”一样)。
然而, 当我运行我的 tar update 命令时,即使它们的修改日期完全相同,也会附加这些文件。我只想在要被 tar 的文件的修改日期比 tar 中已有的更新日期的地方追加...
tar -uf ./tarfile.tar /localdirectory/ >/dev/null 2>&1
目前,每次更新时,tar 的大小都会翻倍...
【问题讨论】:
-
可能是因为我省略了标志以保留开头的斜杠吗?
-
是的,你是对的。添加
-P标志使其工作。或者您可以使用cd /; tar -uf /path/file.tar localdirectory(出于某种奇怪的原因,tar -uf file.tar -C / localdirectory不适用于我的 tar 版本的顺序调用)。 -
不可能:
tar的意思是原来的磁带存档,你不能替换磁带中间的文件。 -
也许 tardy(一个 tar 后处理器)会让你感兴趣tardy.sourceforge.net
标签: linux bash compression tar