tar -zxvf archive.tar.gz /folder/in/archive
这是执行此操作的正确方法吗?似乎永远没有命令行输出...
#1 楼
tar
默认存储相对路径。 GNU tar甚至会这样说,如果您尝试存储绝对路径: tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names
并记下确切的文件名。就我的
foo.tar
文件而言,我可以这样说来提取/home/foo/bar
:它。您必须省去前导斜线。如果要模拟绝对路径,请首先执行cd /
并确保您是超级用户。同样,它的作用也相同:tar -tvf foo.tar
tar
将路径转换为相对路径有非常明显的充分理由。一种是在原始来源以外的地方还原档案的功能。另一个是安全性。您可以提取档案,期望其文件出现在当前工作目录中,然后错误地覆盖其他地方的系统文件(或您自己的工作)。注意:如果使用
-P
选项,则tar
将存档绝对路径。因此,在提取之前检查大型档案的内容总是值得的。评论
--strip-components = N在这里可能对某些人有用。
–触角
14年7月18日在21:57
就我而言,有必要写./foldername/而不是foldername,我想这是因为当我创建tar时,我用tar -cvf santi.tar ./*创建了它,而当我“列出” tar时,这是它说了什么drwxr-xr-x santi / santi 0 2016-04-11 09:42 ./foldername/
–圣地亚哥·亚利桑那
16年11月30日,下午3:32
关于.gz?
– Peter Krauss
17年8月4日在23:04
@PeterKrauss将-xvf更改为-xzvf(添加-z选项),并且显然将foo.tar更改为foo.tar.gz或您的存档名称。 -j(bz2)和某些最新版本的-J(xz)也是如此。否则,使用zcat foo.tar.gz之类的管道。 tar -xvf-…也可以。
–́Alexios
17年8月5日在6:40
请记住,如果您对提取过程中的所有详细输出感到厌倦,则只需跳过所有示例中的v。例如tar -tf foo.tar和tar -xf foo.tar ....
– Bo R
19年3月14日在12:34
评论
您使用绝对路径还是相对路径?应该是相对的,除了看起来正确之外。您让它运行了多长时间?您的系统有多好?在高速计算机上至少需要几分钟。可能一个小时或更长时间?我正在运行测试。是的,它在大约1小时后完成,但是绝对路径错误,您是正确的。
在Linux上,您可以使用cat / proc / $(pidof tar)/ fdinfo / 0(如果您正在运行多个tar进程,请修改该命令)来查看归档tar的距离。
重要的部分也不是结尾斜杠。使用文件夹/文件夹2 /将不起作用。