更新相关目录中的 tar 存档

更新相关目录中的 tar 存档

当我想在相对路径中创建 tar 存档时,我可以这样做:

tar cf archiveName.tar -C relative/path  someDirectory

但当我想更新档案时,这个

tar uf archiveName.tar -C relative/path someDirectory 

出现以下错误:

tar: someDirectory/someFile: Cannot stat: No such file or directory
... (same error for all files and dirs in someDirectory)
tar: Exiting with faliure...

我是否遗漏了什么?

答案1

尽管 GNU tar 的手册页中没有提到,但我想知道该-C选项仅适用于c (create)r (replace)操作。

Unix 手册页写道:

-C 目录文件
对目录执行 chdir(参见 cd(1))操作,并对文件执行 c(创建)或 r(替换)操作。对文件使用短相对路径名。如果文件为“.”,则存档目录中的所有文件。此选项允许存档来自没有紧密公共父级关联的多个目录的文件。

因此,您可以改用r (replace)选项:

tar rf archiveName.tar -C relative/path someDirectory 

相关内容