アーカイブを解凍します。シェルコマンドを使用して、「tar123.tar.gz」をディレクトリ/ myunzip/tar123 /に保存します。
tar -xf tar123.tar.gzはファイルを解凍しますが、作業しているのと同じディレクトリにあります。
ファイル名が「tar233.tar.gz」になる場合は、/ myunzip/tar233.tar.gzに解凍して、宛先ディレクトリがファイル名に基づくようにします。
Tarコマンドがこれを実行できるかどうか誰かが知っていますか?
BashとGNU tar:
file=tar123.tar.gz
dir=/myunzip/${file%.tar.gz}
mkdir -p $dir
tar -C $dir -xzf $file
tar -xzvf filename.tar.gz -C destination_directory
-C
フラグを使用して抽出する前にディレクトリを変更できますが、ディレクトリはすでに存在している必要があります。 (ファイル固有のディレクトリを作成する場合は、それらをfoo.tar.gz
と呼ばないように強くお勧めします。拡張子は、アーカイブファイルであることを意味しますが、実際にはディレクトリです。willは混乱を招きます。)
試す
file=tar123.tar.gz
dir=/myunzip/$(basename $file .tar.gz) # matter of taste and custom here
[ -d "$dir" ] && { echo "$dir already exists" >&2; exit 1; }
mkdir "$dir" && ( gzip -d "$file | ( cd "$dir" && tar xf - ) )
GNU tarを使用している場合は、それにオプション-C "$dir"
抽出する前にディレクトリに移動します。ただし、上記のコードはBronze Ageタールでも機能するはずです。
免責事項:上記のコードはいずれもテストされていません。