#topicpath

///////////////////////////////////////////////////////////////////////////////
* 目次 [#n249582f]
#contents();


///////////////////////////////////////////////////////////////////////////////
* ZIP [#h5fb2e12]
** 圧縮 [#pfdac5dc]
 $ zip out.zip target-file
 
 $ zip -r out.zip target-dir

** 暗号化圧縮 [#a556e192]
 $ zip -e target -P
- 実行すると、解凍用のパスワードの入力を求められる。
- "-r" を付ければディレクトリを圧縮出来る。

** 解凍 [#d090228c]
 $ unzip target.zip


///////////////////////////////////////////////////////////////////////////////
* tar + bzip2 [#p406c7dc]
** 圧縮 [#jef1708f]
 $ tar -cvjf out.tar.bz2 target
** 解凍 [#se9f54e1]
 $ tar -xvjf target.tar.bz2


///////////////////////////////////////////////////////////////////////////////
* tar + xz [#x78dca3d]
- Debian 6.x のtarは xzをサポートしているが、CentOS6.x では未サポート。

** 圧縮 [#v697447f]
 $ tar -cvJf out.tar.xz target
** 解凍 [#wa78794b]
 $ tar -xvJf target.tar.xz
- xz単体の解凍には、zip のように unxz コマンドも使えるし、 bzip2 のように "xz -d" も使える。

///////////////////////////////////////////////////////////////////////////////
* 高速圧縮 [#r721301e]
- Cpu の Core を全て使って圧縮する

//=============================================================================
** tar + pbzip2 [#ea0120fc]
 $ tar -cvf out.tar.bz2 -Ipbzip2 in-file
または
 $ tar -cvf out.tar.bz2 --use-compress-program pbzip2 in-file
- どれくらい差が出るか?
|~CPU |>|>|>|Core i7-3520M (4-Core) |
|~target |>|>|>|linux-2.6.32.65 (439MB)|
|~tar + pbzip2 |~elapsed time |17.510 [sec] |~size |68824777 |
|~tar + bzip2 |~elapsed time |38.542 [sec] |~size |68701378 |

//=============================================================================
** tar + pigz [#ke1736a1]
 $ tar -cvf out.tar.gz --use-compress-program pigz in-file
または
 $ tar -cvf out.tar.gz -Ipigz in-file
または
 $ tar -cvf out.tar.gz --use-compress-program pigz in-file


///////////////////////////////////////////////////////////////////////////////
* cpio [#cpio]
- cpio には色々機能があるが、ここでは tar からの置き換えを前提に記述する
//=============================================================================
** 特徴 [#rc344691]
*** 使用方法 [#ib3fed59]
- 指定されたファイルを tar のように1個のファイルに纏める。
-- 入力ファイルは全て標準入力から渡さなければならない。つまり、 tar ではディレクトリを指定したらその配下のファイルが全て対象になったが、cpio の場合は個別にファイルを指定しなければならない。
--- 逆に考えれば、特定のパターンの名前を持ったファイルを個別に除外できる、という事でもある。
-- 
*** cpio と tar [#qe559b58]
- tar は管理情報をアーカイヴの先頭にまとめて記述しており、そこが破損すると全てのファイルが復元不可能になる。
- cpio は、アーカイヴの中でファイル毎に管理情報を記録しており、アーカイヴの一部が破損しても、影響範囲はその破損部位に関係のあるファイルのみで済む。


//=============================================================================
** 使い方 [#p495902f]

//-----------------------------------------------------------------------------
*** cpio.xz を作成する [#ga3ac83f]
- 方法1
 $ find <target-dir> | cpio -o | pbzip2 > <target-dir>.cpio.bz2
 $ find -print <target-dir> | cpio -o | xz > <target-dir>.cpio.xz

- 方法2
 $ find <target-dir> | cpio -o > <output-file>.cpio
 $ xz <output-file>.cpio

//-----------------------------------------------------------------------------
*** <target-file>.cpio.xz を解凍する [#n2615d92]
- 方法1
 $ xz -dc <target-file>.cpio.xz | cpio -i
- xz, pbzpi2, bzip2, gzip 共に、 "-c" で解凍結果を標準出力に出力する。
- 方法2
 $ xz -d <target-file>.cpio.xz    # この操作で <target-file>.cpio が出来る
 $ cpio -i < <target-file>.cpio


*** <target-file>.cpio の中身を閲覧する [#wf181ce6]
- tar -tvf のように、内包するファイルのリストを表示させる

 $ cpio -it < <target-file>.cpio

//=============================================================================
** 参考リンク [#oe9680bd]
- [[なぜ tar+gzip はよくないか?>http://archive.linux.or.jp/JF/JFdocs/Backup-mini-HOWTO/tar-gz.html]]
- [[cpioコマンドの使い方>http://www.mediaweb.biz/database/modules/database/article.php?articleid=7]]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS