tarballを解凍するときにターゲットディレクトリを作成します。

tarballを解凍するときにターゲットディレクトリを作成します。

mkdir -ptarコマンドで存在しないターゲットディレクトリを定義し、tarが自動的にディレクトリを作成する方法と同様に、ターゲットディレクトリを作成できますか?

を使用して出力をディレクトリにリダイレクトできることを認識していますが、ターゲットディレクトリがtar -C /target/dirないと機能しません。

答え1

mkdir -p /target/dir && tar -C /target/dir

答え2

tar -xvf bash.html_node.tar.gz --one-top-level

tarコマンドのマニュアルページから

--one-top-level[=DIR]

    すべてのファイルを次に抽出します。目次、または引数なしで使用される場合は、アーカイブのデフォルト名(認識されている標準圧縮サフィックスを除く--auto-compress)という名前のサブディレクトリに移動します。

- - - テスト

テスト1

tar zxvf ../aaa.tgz --one-top-level
aaa/
aaa/222
aaa/111

tree aaa
aaa/
├── 111
└── 222

// tgz 名がアーカイブの root_dir と同じ場合、他の効果はありません。

テスト2

mv ../aaa.tgz ../bbb.tgz

tar zxvf ../bbb.tgz --one-top-level
aaa/
aaa/222
aaa/111

tree bbb
bbb
└── aaa
    ├── 111
    └── 222

// tgz 名がアーカイブの root_dir と異なる場合は、最上位ディレクトリを作成します。

答え3

これは私にとってもっと意味があります。mkdir -p /create/folder && tar -zxf haroopad-v0.13.0_x64.tar.gz -C /create/testfolder

mkdirスイッチはよくわかりませんが、フォルダを作成してください-p&&2番目のコマンドを実行できます。私は一般的なtarスイッチを使用しましたが、最終的に-Cディレクトリを変更して目的の場所に抽出しました。

引用:tar-gzアーカイブに含まれているファイルをarchiveという名前の新しいディレクトリに抽出します。

答え4

上記のすべての答えはうまくいきますが、tarの中の内容がディレクトリの中にあるなら、あなたは望むようには機能しません。

それで、この簡単なトリックは私にとって効果的でした。

tar -xvzf v<tarball>.tar.gz && mv ./<INSIDE_FOLDER> ./<NEW_FOLDER>

関連情報