別のディレクトリで tar.gz を解凍する方法 質問する

別のディレクトリで tar.gz を解凍する方法 質問する

アーカイブがあります

*.tar.gz

これを宛先ディレクトリに解凍するにはどうすればいいでしょうか?

ベストアンサー1

Gnu バージョンの を使用している場合は、オプション-C(または--directory長いオプションが好みの場合は ) を使用して、選択したターゲット ディレクトリを指定できますtar。ディレクトリは次の場所に存在する必要があります。

mkdir foo
tar -xzf bar.tar.gz -C foo

tar特定のディレクトリに抽出できる を使用していない場合、cdを呼び出す前にターゲット ディレクトリに を入力するだけで済みますtar。もちろん、アーカイブへの完全なパスを指定する必要があります。これをスコープ サブシェルで実行して、周囲のスクリプトに影響を与えないようにすることができます。

mkdir foo
(cd foo; tar -xzf ../bar.tar.gz)  # instead of ../ you can use an absolute path as well

または、アーカイブ ファイルへの絶対パスも相対パスも適切でない場合は、スコープ サブシェルの外部でアーカイブに名前を付けるために次のように使用することもできます。

TARGET_PATH=a/very/complex/path/which/might/even/be/absolute
mkdir -p "$TARGET_PATH"
(cd "$TARGET_PATH"; tar -xzf -) < bar.tar.gz

おすすめ記事