从tar.gz中将特定文件夹解压缩到特定目录

时间:2014-06-15 21:15:19

标签: linux ssh archive tar remote-backup

我已经搜索并找到了我想要的两部分,但是没有什么可以让你在整体上做到这一点....

我想要做的是将一个特定的文件夹从tar.gz提取到另一个文件夹中,该文件夹在tar.gz中的方式不同。

例如:

  • 我的backup.tar.gz文件中的目录路径是:a / b / c / d(d是我的主要内容,其中有很多其他人)

  • 我想打开目录' d'进入' m'在这个不同的服务器路径中:a / b / m

  • 如果我尝试此代码:tar -xzf backup.tar.gz -C a / b / m

**文件夹结构如下:a / b / m / a / b / c / d但我希望它看起来像一个/ b / m + d,以便存档中的所有主文件/文件夹' d'路径最终出现在' m'路径

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:13)

好的我明白了!

基本上我可以使用strip命令删除x个前导目录。在这种情况下,我的命令看起来像这样:

tar -xzf backup.tar.gz --strip-components = 3 -C a / b / m

从我的存档中删除前三个路径目录(backup.tar.gz:a / b / c / d),然后将其解压缩到desctination目录。

现在看起来像这样:a / b / m + d

答案 1 :(得分:0)

这对我来说在OS X上工作(从GitHub仓库中提取特定文件):

# Move to target directory and run:
curl -#L https://github.com/USER/REPO/tarball/BRANCH | tar -xzv --strip-components 3 --include=*./some/folder