仅当存在时才让 Tar 更新现有档案

仅当存在时才让 Tar 更新现有档案

所以我有我用过的这一行:

find . -maxdepth 1 -mindepth 1 -type d -exec tar cvf {}.tar {} --remove-files \;

它将每个顶级目录压缩到它们自己的 tar 存档中,然后删除文件。

现在,当它因某种原因意外停止时,我怎样才能让它再次继续?当 tar 已经存在时,无需重新创建它。

我知道这面--update旗帜,但对我来说知识:

 -u, --update
       only append files newer than copy in archive

看来只能更新如果文件较新,并且当文件不存在时不会真正添加文件。

我怎样才能使用 Bash/Unix 工具做上面提到的事情?

答案1

使用r(附加模式)而不是c

find . -maxdepth 1 -mindepth 1 -type d -exec tar rvf {}.tar {} --remove-files \;

如果存档尚不存在,这将创建一个存档;如果存在,则会追加到该存档中。

相关内容