• ベストアンサー

linux上で、複数のgz圧縮ファイルを、元のgzファイルも保持したま

linux上で、複数のgz圧縮ファイルを、元のgzファイルも保持したまま解凍したいのですが、 > gunzip -cd *.gz のように、標準出力して元のファイルを残すのではなく、 圧縮ファイルとして元のファイルを保持したまま、解凍も行うことはできないのでしょうか? (例えば、"AAA.gz"を解凍して"AAA"と"AAA.gz"の2つをディレクトリ内に残すことはできないのでしょうか?) ご教授よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

#!/usr/bin/sh dfile=${1%.gz} if [ dfile ?!= $1 ] ; then gzip -dc "$1" > "${dfile}" fi みたいなスクリプトを作るのはどうでしょうか 少なくとも、gzipには目的の方法を実現するオプションは無さそうです。 あとは、gzipではないツールを使うか、です。7-zipをインストールして 7za x ~.gz でgzを残しつつ、圧縮前のファイルが作成されました。

jshannon9
質問者

お礼

早速のご回答ありがとうございました。 やっぱり面倒でもスクリプトを作るしかないんですね。 ご回答参考にさせていただきます。 ありがとうございました。

その他の回答 (1)

回答No.2

gunzip (gzip) は、出力先が標準出力 (-c) 以外の場合、必ず元ファイルを消してしまうわけですが、不思議なことに、「消さないオプション」が追加されたことがないようです (gzipのソースコードを読む限り)。 消させないようにするには、ご認識の方法、つまり標準出力に書き出させてファイルにリダイレクトするしかありません。

jshannon9
質問者

お礼

早速のご回答ありがとうございます。 やっぱりこれくらいは自分でスクリプト作らないとダメなんですね。 近道がないことが分かって逆にすっきりしました。 ありがとうございました。