【先着1,000名様!】1,000円分をプレゼント!

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

> gunzip -cd *.gz

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

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

このQ&Aに関連する最新のQ&A

A 回答 (2件)

#!/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

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



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

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

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

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

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qダブルクォーテーションを含む正規表現について。

正規表現によるマッチング(?)を勉強しています。

例えば「blog」という文字列で、マッチングを試みる場合は、
String str = "blog";
で、strに格納すると思うのですが、例えば「link rel=""」という文字列でマッチングを試みる場合はどうすればいいのでしょうか?
「""」の部分をそのまま文字列のダブルクォーテーションの中に入れると、エラーになってしまうので、何か別のやり方が必要だと思うのですが、わかりません…。

Aベストアンサー

もとい

”abc"abc”は”abc\"abc”と記述します


このカテゴリの人気Q&Aランキング