- ベストアンサー
linux上で、複数のgz圧縮ファイルを、元のgzファイルも保持したま
linux上で、複数のgz圧縮ファイルを、元のgzファイルも保持したまま解凍したいのですが、 > gunzip -cd *.gz のように、標準出力して元のファイルを残すのではなく、 圧縮ファイルとして元のファイルを保持したまま、解凍も行うことはできないのでしょうか? (例えば、"AAA.gz"を解凍して"AAA"と"AAA.gz"の2つをディレクトリ内に残すことはできないのでしょうか?) ご教授よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#!/usr/bin/sh dfile=${1%.gz} if [ dfile ?!= $1 ] ; then gzip -dc "$1" > "${dfile}" fi みたいなスクリプトを作るのはどうでしょうか 少なくとも、gzipには目的の方法を実現するオプションは無さそうです。 あとは、gzipではないツールを使うか、です。7-zipをインストールして 7za x ~.gz でgzを残しつつ、圧縮前のファイルが作成されました。
その他の回答 (1)
- jyufi_february
- ベストアンサー率84% (42/50)
回答No.2
gunzip (gzip) は、出力先が標準出力 (-c) 以外の場合、必ず元ファイルを消してしまうわけですが、不思議なことに、「消さないオプション」が追加されたことがないようです (gzipのソースコードを読む限り)。 消させないようにするには、ご認識の方法、つまり標準出力に書き出させてファイルにリダイレクトするしかありません。
質問者
お礼
早速のご回答ありがとうございます。 やっぱりこれくらいは自分でスクリプト作らないとダメなんですね。 近道がないことが分かって逆にすっきりしました。 ありがとうございました。
お礼
早速のご回答ありがとうございました。 やっぱり面倒でもスクリプトを作るしかないんですね。 ご回答参考にさせていただきます。 ありがとうございました。