web-dev-qa-db-ja.com

Tar.gzを別のディレクトリに解凍する方法

アーカイブがあります

* .tar.gz

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

234
Mercer
gzip -dc archive.tar.gz | tar -xf - -C /destination

またはGNU tarを使用

tar xzf archive.tar.gz -C /destination
93
Mercer

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

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
287
Alfe

myArchive.tar から /destinationDirectory に抽出します。

コマンド:

cd /destinationDirectory
pax -rv -f myArchive.tar -s ',^/,,'
4
javaPlease42