14

私が欲しいものの2つの部分を検索して見つけましたが、それを完全に行うことができるものは何もありません....

私がしたいのは、特定のフォルダーを 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 しかし、アーカイブされた 'd' 内のすべてのメイン ファイル/フォルダーが含まれるように、a/b/m+d のようにしたいと考えています。パスは「m」パスで終了します

どんな助けでも大歓迎です。

ありがとう!

4

2 に答える 2

18

わかりました!

基本的に、strip コマンドを使用して、x 個の先頭ディレクトリを削除できます。この場合、私のコマンドは次のようになります。

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

これにより、アーカイブから最初の 3 つのパス ディレクトリ (backup.tar.gz : a/b/c/d) が削除されてから、desctination ディレクトリに抽出されました。

次のようになります: a/b/m+d

于 2014-06-16T00:30:27.183 に答える
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
于 2014-12-12T05:56:05.330 に答える