12 December 2015

LinuxとWindowsで互換のあるファイル分割圧縮 7-Zip

Linux / Windows どちらの環境でも解凍できる「巨大ファイルの分割圧縮」をいろいろ試してみたが、7-Zipがとりあえず条件をクリアしたので、メモ程度に記事に…

Windows側での圧縮、解凍

7-Zip公式サイトで配布されているが必要十分な機能を持っている。インストールすると、ファイル・エクスプローラのコンテキストメニュー(右クリックメニュー)に、圧縮・解凍のためのメニューが追加される。

20151212-7zip-compress.jpg
圧縮設定画面

高速に圧縮・解凍を行うには、圧縮レベルを 0 にする(無圧縮)にする必要がある。この他に、圧縮後のファイル分割サイズを指定する。上の例では650MBytesに設定している。この他の設定値はデフォルトのままでOK。

20151212-7zip-extract.jpg
分割ファイルの解凍中のダイアログ

Ubuntu(Linux)のPeaZipで圧縮した7-Zip形式分割ファイルも問題なく解凍できる。

Linux側での圧縮、解凍

PeaZipの公式ページよりdebパッケージをダウンロードしてインストールする。圧縮・解凍とのみPeaZipを起動して、プログラムで対象ファイルの存在するディレクトリを表示し、ファイルを右クリックして出るコンテキストメニューから操作する。UbuntuのファイラNautilusのコンテキストメニューから実行すると、次のセクションで説明するFile-Rollerが起動してしまう

20151212-peazip-compress01.jpg
PeaZipでの圧縮は、「変換」というコンテキストメニュー項目を選択

20151212-peazip-compress02.jpg
圧縮設定画面

圧縮率は「復元」を選択する。 このソフトの日本語翻訳、間違ってますね…

20151212-peazip-extract.jpg
解凍中ダイアログ

Linuxのファイラから起動するFile-Rollerを使う

Ubuntuの標準ファイラのコンテキストメニューで表示されるデフォルトの圧縮・解凍ソフトはfile-rollerだ。解凍はどのような圧縮レベルの分割7-Zipファイルにも対応しているが、圧縮の場合には圧縮率を選択できない。巨大ファイルの分割をする場合、圧縮を掛けると極端に時間がかかるので不適な場合がある。

20151212-fileroller-compress.jpg
file-rollerで圧縮する場合の設定

ファイルの分割数は設定できるが、圧縮率は設定できない。

7-Zipコマンドライン版

Command Line Version User's Guide

$ 7z a -t7z -mx=0 -v650m /path/to/OUTPUT.7z /path/from/SOURCE

-mx=0 : x=0で無圧縮、x=1, 3, 5, 7, 9 で圧縮率が上がっていく。標準圧縮はx=5
-v650m : 128kで128kBytes, 650mで650MBytes, 1.2gで1.2GBytes など
-t7z : 出力形式7zとする。なお、出力拡張子があれば自動的に設定される