アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

> gunzip -cd *.gz

のように、標準出力して元のファイルを残すのではなく、
圧縮ファイルとして元のファイルを保持したまま、解凍も行うことはできないのでしょうか?
(例えば、"AAA.gz"を解凍して"AAA"と"AAA.gz"の2つをディレクトリ内に残すことはできないのでしょうか?)

ご教授よろしくお願いします。

A 回答 (2件)

gunzip (gzip) は、出力先が標準出力 (-c) 以外の場合、必ず元ファイルを消してしまうわけですが、不思議なことに、「消さないオプション」が追加されたことがないようです (gzipのソースコードを読む限り)。



消させないようにするには、ご認識の方法、つまり標準出力に書き出させてファイルにリダイレクトするしかありません。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

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

お礼日時:2010/05/22 03:09

#!/usr/bin/sh



dfile=${1%.gz}
if [ dfile ?!= $1 ] ;
then
gzip -dc "$1" > "${dfile}"
fi

みたいなスクリプトを作るのはどうでしょうか
少なくとも、gzipには目的の方法を実現するオプションは無さそうです。

あとは、gzipではないツールを使うか、です。7-zipをインストールして
7za x ~.gz
でgzを残しつつ、圧縮前のファイルが作成されました。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。

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

お礼日時:2010/05/22 03:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!