如何从大型tar.gz存档中提取单个文件夹?

加勒特音乐厅

我正在5GB存档上使用此命令

tar -zxvf archive.tar.gz /folder/in/archive

这是正确的方法吗?似乎永远没有命令行输出...

阿列克修斯(Alexios)

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 存档绝对路径。因此,在提取前检查大型档案的内容总是值得的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章