mkdir -p
tarコマンドで存在しないターゲットディレクトリを定義し、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
ディレクトリを変更して目的の場所に抽出しました。
答え4
上記のすべての答えはうまくいきますが、tarの中の内容がディレクトリの中にあるなら、あなたは望むようには機能しません。
それで、この簡単なトリックは私にとって効果的でした。
tar -xvzf v<tarball>.tar.gz && mv ./<INSIDE_FOLDER> ./<NEW_FOLDER>