7-zip

提供:maruko2 Note.
移動: 案内, 検索

目次


Windows 用の高機能な圧縮解凍ソフトウェア(オープンソース、フリーウェア)

UNIX/Linux へ移植された p7zip もある。

7-zip

サポートしている形式:

自己解凍形式も作成可能。

p7zip

p7zip ビルド方法

ソースコード http://sourceforge.net/projects/p7zip/files/

  1. OS ごとの makefile.xxxxx を makefile.machine という名前にコピーし、make する。
  2. make TARGET でビルド内容を変えることができる(README 参照)

    make 空白 にすると、7za バイナリのみビルドする。

  3. install.sh を実行すると、ビルドしたバイナリがインストール(コピー)される。
  4. prefix は install.sh を書き換えることで可能。デフォルトでは DEST_HOME=/usr/local になっている。

Mac OS X で 7za をビルドする例

cp makefile.macosx_llvm_64bits makefile.machine
make all_test
sudo ./install.sh

7z の使い方

圧縮し解凍すると UID/GID が含まれない。ただし、パーミッションやタイムスタンプは維持される。

圧縮後の .7 ファイルのパーミッションは 500 になる。

書式

7z <command> [<switches>...] <archive_name> [<file_names>...]

圧縮

a コマンドで解凍。

7z a archive.7z file1 file2 file3
7z a archive.7z dir

解凍

xコマンドだと、圧縮時のディレクトリ構成をそのまま解凍する。(普通の解凍)

7z x archive.7z

eコマンドだと、圧縮時のディレクトリ構成を無視して解凍する。

7z e archive.7z

UID/GID を維持しディレクトリを圧縮&解凍する方法

圧縮:

  1. tar コマンドでアーカイブ化し、パイプで 7z に渡す。
  2. 7z-si スイッチを付け、stdinから読み込むようにする。
tar cf - DIR | 7z a -si archive.7z

解凍:

  1. -so スイッチで stdout し、パイプで tar に渡す。
7z x -so archive.7z | tar xf -

自己解凍ファイルの作成方法

自己解凍ファイルを作成するには -sfx[{name}] スイッチを使う。

7z a -sfx DIR Archive.exe

例えば CentOS で自己解凍ファイルを作ると Linux で自己解凍できるファイルが作られる。

[shell]$ 7z a -sfx DIR Archive.exe
[shell]$ file Archive.exe
Archive.exe: ELF 64-bit LSB executable, x86-64, ...

CentOS で Windows 用の自己解凍ファイルを作るには、Windows にインストールされている 7z.sfx, 7zCon.sfx を CentOS へコピーして利用する。

Windows に 7-Zip をインストールし、C:¥Program Files¥7-Zip フォルダにある 7z.sfx, 7zCon.sfx を、CentOS の /usr/libexec/p7zip ディレクトリにコピーする。

Windows と CentOS の 7z.sfx, 7zCon.sfx は同じファイル名なので、Windows のファイルを 7zW32.sfx, 7zConW32.sfx のように変えてからコピーする。

7z.sfx は GUI 用、7zCon.sfx はコンソール用を意味する。

mv 7z.sfx /usr/libexec/p7zip/7zW32.sfx
mv 7zCon.sfx /usr/libexec/p7zip/7zConW32.sfx

あとは、-sfx[{name}] スイッチで Windows 用の SFX を指定して圧縮する。

[shell]$ 7z a -sfx7zW32.sfx DIR Archive.exe
[shell]$ file Archive.exe
Archive.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit

参考ページ

LINEで送る このエントリーをはてなブックマークに追加
個人用ツール
名前空間
変種
表示
操作
案内
ツールボックス

注目のページ

このサイトのはてなブックマーク数