3

MediaWiki 0.1.18 のバグを回避するために、再圧縮/再圧縮する必要がある zip ファイルがたくさんあります。

私はそれを行うことができます

#!/bin/bash

for f in *zip; do
   cd tmp
   rm -rf *
   unzip ../"$f"
   zip -r ../"$f" *
   cd ..
done

しかし、パイプやおそらくzipオプションなどでこれを行う方法はありますか?

4

4 に答える 4

6
gzip -d -c old.gz | gzip >new.gz
于 2012-04-18T11:22:34.230 に答える
2

できません。zipにビットを送信すると、1つのファイルがいつ終了し、新しいファイルがいつ開始するかを知る方法がありません。

実際、あなたはその仕事をするためにあなた自身のプログラムを書くことができます、しかしあなたの説明からそれはやり過ぎのようです。また、修正しているバグが正確にわからないため、他の回避策を提案することはできません。

于 2012-04-18T12:54:28.920 に答える
2

あなたが探しているものを正確に実行するAdvanceCOMPと呼ばれるユーティリティがあります。ディスクへの中間抽出なしで、ZIP および GZ ファイル (およびその他のファイル) を再圧縮します。(使用されるメカニズムは、データを解凍して再圧縮することだと思いますが、ファイルをディスクに書き込んだり、メタデータを再生成したりする必要はありません。)

于 2014-05-27T13:58:08.820 に答える