我正在使用这个命令5GB档案
tar -zxvf archive.tar.gz /folder/in/archive
这是正确的方法吗?没有命令行输出似乎要花很长时间......
答案1
tar
存储相对路径默认情况下。如果你尝试存储绝对路径,GNU tar 甚至会这样说:
tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names
如果您需要提取特定文件夹,请查看 tar 文件中的内容:
tar -tvf foo.tar
并记下确切的文件名。就我的foo.tar
文件而言,我可以/home/foo/bar
这样提取:
tar -xvf foo.tar home/foo/bar # Note: no leading slash
所以不,您发布的方式(不一定)不是正确的方式。您必须省略前导斜杠。如果您想模拟绝对路径,请cd /
首先执行并确保您是超级用户。另外,这也有同样的作用:
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
tar
将路径转换为相对路径有非常明显、充分的理由。一是能够在原始来源以外的地方恢复档案。另一个是安全。您可以提取存档,期望其文件出现在当前工作目录中,但却错误地覆盖其他地方的系统文件(或您自己的工作)。
注意:如果您使用该-P
选项,tar
将要归档绝对路径。因此,在提取之前检查大型档案的内容总是值得的。