.tar.xz
我确实使用以下命令将目录压缩为存档格式:
tar --create --verbose --file myArchive.tar.xz /path/to/my/dir
然后,我尝试使用以下命令检查创建的存档的运行状况:
tar --compare --file myArchive.tar.xz /path/to/my/dir
我得到了这个错误行:
tar: /path/to/my/dir: Not found in archive
tar: Exiting with failure status due to previous error
我重试但得到了相同的结果。问题是什么以及如何解决?
答案1
如果您确实需要使用绝对路径名,那么您应该考虑-P
同时使用--create
和--compare
命令。
-P, --absolute-names
Don't strip leading slashes from file names when creating archives.
例子:
$ tar -cvPf a.tar /home/user/test_file
/home/user/test_file
$ tar -dvPf a.tar /home/user/test_file
/home/user/test_file
或者您可以-C
在比较之前使用 , 更改目录。
-C, --directory=DIR
Change to DIR before performing any operations. This option is
order-sensitive, i.e. it affects all options that follow.
例子:
tar -cvf a.tar /home/user/test_file
tar: Removing leading `/' from member names
/home/user/test_file
tar -dvf a.tar -C/ home/user/test_file
home/user/test_file
答案2
前导/
可能已被删除,因此在存档中找不到路径名。
当使用标准 GNUtar
并添加文件时,/absolute/path/file.ext
前导/
将被删除,文件将absolute/path/file.ext
在存档内命名。
通常这会在归档文件时写入 stderr,请检查该输出,它可能如下例所示:
# tar -cvf test.tar /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd
# tar -tf test.tar
etc/passwd
因此请尝试运行
tar --compare --file myArchive.tar.xz path/to/my/dir
如果路径是 则省略路径的第一个字符/
。