背景(読む必要はありません)
私は仕事のためにMSオフィスファイルをいじっています(任意の長さのExcelおよびPowerPointファイルの生成を自動化する最も簡単で簡単な方法を見つけようとしています)。実際の Excel ファイルは、ファイル名に .xlsx が追加された zip アーカイブであるため、それらを解凍し、xml を編集し、再圧縮し、OpenOffice がまだそれらを読み込めるかどうかを確認しました。
ただし、(ありがたいことに、それほど多くのテストを行ったわけではありませんが)デフォルトでは、bash(または少なくとも私のMac)の「zip」コマンドは、v1の解凍のみを必要とする形式でファイルを圧縮していることに気付きました.0 を解凍しますが、通常の Excel ファイルは解凍に v2.0 が必要な方法で圧縮されます。これが問題であることを確認するには、正常に読み込まれたことがわかっている Excel ファイルを圧縮および解凍し、それを読み込もうとしました。OpenOffice は不満だった。
したがって、Excel とまったく同じようにファイルを zip にする必要があることはわかっていますが、それを実現する方法はわかりません。私は自分のコンピュータに zip バージョン 3 を持っているので、zip/unzip のリリース サイクルが同期されていれば可能だと思いますが、man ページにはすぐに解決策と思われるものは何もありませんでした。
編集: そして zip -9 (これは zip -h が zip に「圧縮を改善する」ように指示するのに役立つと言っています) は、まだ v1.0 のみを抽出する必要があります。
質問:
解凍するために unzip v2.0 が必要になるような方法で zip でファイルを圧縮することを bash で指定するにはどうすればよいですか?