当我想在相对路径中创建 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