ownCloudは自前でファイル共有サーバを立てるためのサーバアプリケーション。フォルダをまとめてダウンロードしたところ,Macでzipの解凍ができない。
検索してみるとよく知られた問題のようである。ownCloudは大容量データをアーカイブするためにzip64を導入したが,Macのアーカイブユーティリティが対応していない。/usr/bin/unzip
は古いバージョンだ。
$ /usr/bin/unzip --version caution: both -n and -o specified; ignoring -o UnZip 5.52 of 28 February 2005, by Info-ZIP. Maintained by C. Spieler. Send bug reports using http://www.info-zip.org/zip-bug.html; see README for details.
Info-ZIPのUnZipのページにはセキュリティ上の脆弱性が警告されている。新しいものを入れた方が良さそうだ。unzip
とzip
をMacPortsでインストールする。
$ sudo port -d install unzip zip
MacPortsで入れたunzipで解凍しようとしたが,複数の部分(multi-part)からなるアーカイブだとする警告が出て解凍できない。
Archive: archive.zip warning [archive.zip]: zipfile claims to be last disk of a multi-part archive; attempting to process anyway, assuming all parts have been concatenated together in order. Expect "errors" and warnings...true multi-part support doesn't exist yet (coming soon).
実際は単一のファイルしかない。zip
で修復する。
$ zip -F archive.zip --out archive1.zip
修復したファイルも解凍できない。
Archive: archive1.zip skipping: archive1/ need PK compat. v4.5 (can do v2.1) skipping: archive1/file1.docx need PK compat. v4.5 (can do v2.1) skipping: archive1/file2.docx need PK compat. v4.5 (can do v2.1)
圧縮アリゴリズムは7zipのようである。MacPortsでp7zip
をインストールし,7z
で解凍する。
$ sudo port -d install p7zip $ 7z x archive1.zip
7z
では解凍できた。試しに元のファイルを解凍してみたら,解凍できた。
$ 7z x archive.zip
結論。ownCloudでダウンロードしたアーカイブの拡張子はzip
だが,7zip形式で圧縮されているので,p7zip
をインストールすれば7z
で解凍できる。