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


270

アーカイブがあります

* .tar.gz

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


9
なぜすべての反対票か。-C以外にも多くのオプションがあります(おそらく、彼のバージョンではこれが提供されていません)。
Alfe 2013

2
Stack Overflowは、プログラミングと開発に関する質問のためのサイトです。この質問はプログラミングや開発に関するものではないため、トピックから外れているようです。ヘルプセンターで、どのようなトピックについて質問できますかをご覧ください。おそらく、スーパーユーザーまたはUnix&Linux Stack Exchangeのほうがよいでしょう。
jww

私たちはまた、タグが命名したあなたのポイントを参照しながら@jww targz周りでこのフォーラムを。特定のディレクトリにtarballを抽出することは、シェルスクリプトの一部であり、したがってプログラミングの一部でもあります。この種の質問はどちらのフォーラムでも尋ねられると思います。
Alfe、

回答:


319

の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

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

または、GNU tar

tar xzf archive.tar.gz -C /destination

3
gziptarが圧縮されたアーカイブを理解できない場合の使用の概念が好きです。
Alfe、2013

4

myArchive.tar/ destinationDirectoryに抽出します

コマンド:

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

0

forループを使用して複数の.tar.gzファイルを別のフォルダーに解凍できます。次のコードは、スクリプトの引数として/ destination / folder / pathを取り、/ destination / folder / pathの現在の場所にあるすべての.tar.gzファイルを解凍します。

if [ $# -ne 1 ];
 then
 echo "invalid argument/s"
 echo "Usage: ./script-file-name.sh /target/directory"
 exit 0
fi
for file in *.tar.gz
do
    tar -zxvf "$file" --directory $1
done
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.