所以我有我用过的这一行:
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 \;
如果存档尚不存在,这将创建一个存档;如果存在,则会追加到该存档中。