【问题标题】:Extract a specific folder to specific directory from a tar.gz从 tar.gz 中提取特定文件夹到特定目录
【发布时间】:2014-08-05 17:12:26
【问题描述】:

我已经搜索并找到了我想要的两个部分的方法,但没有任何东西可以让你完整地做到这一点......

我想做的是将特定文件夹从 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 但我希望它看起来像 a/b/m+d 以便存档中的所有主要文件/文件夹'd' 路径结束于 'm' 路径

非常感谢任何帮助。

谢谢!

【问题讨论】:

    标签: linux ssh archive tar remote-backup


    【解决方案1】:

    这在 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
    

    【讨论】:

    • --include 正是我现在需要的选项,但遗憾的是它在 GNU tar 上不可用。
    【解决方案2】:

    好的,我想通了!

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

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

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

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

    【讨论】:

    • 就我个人而言,我试过这个,它匹配了多个目录,提取了大量我不想要的文件,创建了一堆乱七八糟的文件。在尝试之前我应该​​阅读更多文档。
    猜你喜欢
    • 1970-01-01
    • 2016-07-20
    • 2020-03-25
    • 2016-03-05
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    • 2016-10-02
    相关资源
    最近更新 更多