アーカイブがあります
*.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