我已经搜索并找到了我想要的两部分,但是没有什么可以让你在整体上做到这一点....
我想要做的是将一个特定的文件夹从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'路径
非常感谢任何帮助。
谢谢!
答案 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