Archive

単体ファイルの解凍、圧縮

解凍

xz

$ xz -d ファイル.xz

bzip(bz2)

$ bzip -d ファイル.bz2

gzip(gz)

$ gzip -d ファイル.gz

圧縮

勝手に拡張子が付けられる

xz

$ xz ファイル

bzip(bz2)

$ bzip ファイル

gzip(gz)

$ gzip ファイル

tar

$ tar option file

option

コマンド 動作
A tarファイルを書庫に追加する
c 書庫を新規に作成する
d 書庫とファイル・システムを比較する
r 書庫の後部にファイルを追加する
t 書庫の内容を表示する
u 書庫内のファイルより新しいファイルのみ追加する
x 書庫を解凍
z gzipを通して処理する
j bzip2を通して処理を行う
J LZMAを通して処理を行う
k ファイルが存在する場合は上書きしない
v 詳細を表示する
–delete書庫内からファイルを削除する

【例】

$ tar cvfz backup.tar.gz ~/backup #bakupフォルダをgzipで書庫backup.tar.gzにする
 
$ tar cvfj backup.tar.bz2 ~/backup #bakupフォルダをbzip2で書庫backup.tar.bz2にする
 
$ tar jxfv backup.tar.bz2 #bzip2で圧縮されている書庫backup.tar.bz2を解凍する
 
$ tar rf archive.tar add_file #既にある書庫にファイル(add_file)を追加する
 
$ tar tf archive.tar #書庫ファイルの内容を一覧する

--xzオプション (-J) tar 1.22から 

tar 1.22から–xzがサポートされました。
xzはLZMAフォーマットという7-Zipアーカイバの7zフォーマットで使用されているデータ圧縮アルゴリズムを 利用したものだそうです。
GNUで配布されているcoreutilsだとgzは9310KBなのにxzだと3875KBです。かなり圧縮率高いです。
xzもtar1.22もまだでたばっかりなのでソースからインストールします。

macの場合はxzもtarも最新版がMac portsに入っています。

  • tarはgnutarという名前で入っています。/opt/local/bin/gnutarと入るのでaliasなんかすべし。
  • xzはxz-develではいっています。
$ sudo port install gnutar
$ sudo port install xz-devel

.zshrcかなんかに

$ vi ~/.zshrc
 
alias tar='/opt/local/bin/gnutar'

ソースからインストールする場合は
まずxz
ここから最新版のxzをダウンロード

$ cd src
$ wget http://tukaani.org/xz/xz-4.999.8beta.tar.gz
$ tar xzf xz-4.999.8beta.tar.gz
$ cd xz-4.999.8.beta
$ ./configure
$ make
$ sudo make install

次にtar1.22。ここからダウンロード

$ cd src
$ wget http://core.ring.gr.jp/pub/GNU/tar/tar-1.22.tar.gz
$ tar xzf tar-1.22.tar.gz
$ cd tar-1.22
$ ./configure
$ make
$ make check
$ sudo make install

prefixをしてしていないのならどちらも/usr/local/binに入ってる。でも怖いんで素のままの場所にはやめた方がいいです。

使い方

使い方はJ(ラージ)です。

【例】

$ tar Jfcv arc.tar.xz arc/

7zip (7za)

インストール

$ sudo port install p7zip

圧縮

$ 7za a dir.7z dir/

解凍

$ 7za x dir.7z

ディレクトリ指定で解凍

$ 7za x -o"directory" dir.7z

高圧縮

$ 7za a -mx=9 -mfb=258 -mpass=15 dir.7z dir/

gzipで圧縮

$ 7za a -tgzip dir.7z dir/

bzip2で圧縮

$ 7za a -tbzip2 dir.7z dir/

パスワード付き

$ $ 7za a -p"password" dir.7z dir/

パスワード付きzip

$ zip -e -r dir.zip dir/

unzip

zipファイルの解凍

そのまま

$ unzip foo.zip

とやると中のファイルがカレントディレクトリ内に解凍されてしまうので

$ unzip foo.zip -d foo_dir

とするとfoo_dir/のなかに解凍されるようになる。

other/archive.txt · 最終更新: 2014/03/26 04:43 by eiji