提取档案

提取档案
~/Downloads/t1$ tar tf test.t 
home/a/Downloads/t2/
home/a/Downloads/t2/z.txt 
home/a/Downloads/t2/y.txt
~/Downloads/t1$ tar xf test.t 
~/Downloads/t1$ ls ~/Downloads/t2
ls: cannot access ’/home/a/Downloads/t2’: No such file or directory 

为什么会发生这种情况?这是因为我没有输入路径名吗?

答案1

ls home/a/Downloads/t2/从您提取 tar 存档的目录中尝试。

注意tar t列表中的路径有前导斜杠,因此在提取存档时,它们将相对于当前工作目录,而不是相对于文件系统根目录。通常,这就是您想要的,因为将文件从存档中提取到可能的任何地方可能相当危险。

当然,在创建存档时,经常使用tar cf foo.tar t2, 而不仅仅是tar cf foo.tar /home/a/t2存储路径的相关部分。

但由于存档中已经有较长的路径,您可以 a) 转到根目录来提取它:

~$ cd /
/$ tar xf ~/Downloads/t1/test.t 

或者使用一个选项来tar删除不需要的部分,例如至少在 GNU tar 中:

--strip-components=NUMBER
提取时从文件名中删除 NUMBER 个前导组件。

所以,tar xf test.t --strip-components=3应该做。

相关内容