#author("2019-06-09T03:16:46+00:00","","") #topicpath /////////////////////////////////////////////////////////////////////////////// * 目次 [#n249582f] #contents(); /////////////////////////////////////////////////////////////////////////////// * ZIP [#zip] ** 圧縮 [#pfdac5dc] $ zip out.zip target-file $ zip -r out.zip target-dir ** 暗号化圧縮 [#a556e192] $ zip -e <dest-file.zip> <src-file-or-dir> -P <passwd> - 実行すると、解凍用のパスワードの入力を求められる。 - "-r" を付ければディレクトリを圧縮出来る。 ** 解凍 [#d090228c] $ unzip target.zip /////////////////////////////////////////////////////////////////////////////// * tar + bzip2 [#tar_bzip2] ** 圧縮 [#jef1708f] $ tar -cvjf out.tar.bz2 target ** 解凍 [#se9f54e1] $ tar -xvjf target.tar.bz2 /////////////////////////////////////////////////////////////////////////////// * tar + xz [#tar_xz] - 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" も使える。 /////////////////////////////////////////////////////////////////////////////// * 7z [#archive7z] ** 圧縮 [#zad1acb5] $ 7z a <out-archive-name>.7z <src> ** 解凍 [#j275b053] $ 7z e <src-archive-name>.7z ** アーカイヴ内容の一覧を表示(tar -tvf に相当) [#b99a51a9] $ 7z l <src-archive-name>.7z /////////////////////////////////////////////////////////////////////////////// * Zstandard [#cd9ac17f] - Facebook が開発した可逆圧縮アルゴリズム - bzip2 等と同様、アーカイヴ機能はないので、ディレクトリなどを圧縮する場合は tar や cpio 等と組み合わせて使う。 - 拡張子は ''.zst'' - 特徴は、 xz と比べて圧倒的に高速であり、且つ圧縮率でも遜色ないことである。 //============================================================================= ** 圧縮 [#z306c12e] $ zst -z <src-file> //============================================================================= ** 解凍 [#le2c1bde] $ zst -d <src-file> //============================================================================= ** tar と組み合わせて圧縮 [#r4123ef5] $ tar -cvf <out-archive-name>.tar.zst <src-file-or-dir> -I zstd /////////////////////////////////////////////////////////////////////////////// * 高速圧縮 [#r721301e] - Cpu の Core を全て使って圧縮する //============================================================================= ** tar にサポートされていないプログラムを tar と組み合わせて使うとき [#ncdb064e] - tar の以下のオプションを使う -- ''-I''<compressor-program> -- ''--use-compress-program'' <compressor-program> - 例(圧縮プログラムに bzip2 のパラレル版である pbzip2 を使う場合) $ tar -cvf out.tar.bz2 in-file -Ipbzip2 //============================================================================= ** tar + pxz [#tar_pxz] - pxz は、xz の parallel 版。 - tar が pxz をサポート外としている可能性があるが、その場合でも以下のコマンドのように、 ''-I'' オプションで渡すことにすれば問題なく実行できるだろう。 $ tar -cvf ${out_target}.tar.xz ${source} -Ipxz //============================================================================= ** tar + pbzip2 [#tar_pbzip2] $ 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 [#tar_bpigz] $ tar -cvf out.tar.gz in-file -Ipigz または $ tar -cvf out.tar.gz in-file --use-compress-program pigz //============================================================================= ** p7zip [#b1ce863f] /////////////////////////////////////////////////////////////////////////////// * cpio [#cpio] - cpio には色々機能があるが、ここでは tar からの置き換えを前提に記述する //============================================================================= ** 特徴 [#rc344691] *** 使用方法 [#ib3fed59] - 指定されたファイルを tar のように1個のファイルに纏める。 -- 入力ファイルは全て標準入力から渡さなければならない。つまり、 tar ではディレクトリを指定したらその配下のファイルが全て対象になったが、cpio の場合は個別にファイルを指定しなければならない。 --- 逆に考えれば、特定のパターンの名前を持ったファイルを個別に除外できる、という事でもある。 *** cpio と tar [#qe559b58] - tar は管理情報をアーカイヴの先頭にまとめて記述しており、そこが破損すると全てのファイルが復元不可能になる。 - cpio は、アーカイヴの中でファイル毎に管理情報を記録しており、アーカイヴの一部が破損しても、影響範囲はその破損部位に関係のあるファイルのみで済む。 //============================================================================= ** 使い方 [#cpio-xz] //----------------------------------------------------------------------------- *** cpio.xz を作成する [#ga3ac83f] $ find -print <target-dir> | cpio -o | xz > archive-name.cpio.xz //----------------------------------------------------------------------------- *** <target-file>.cpio.xz を解凍する [#n2615d92] $ xz -dc <target-file>.cpio.xz | cpio -i - xz, pbzpi2, bzip2, gzip 共に、 "-c" で解凍結果を標準出力に出力する。 - (p)bzip2 で元ファイルを勝手に削除させたくない場合は、 "-k" を追加指定する *** <target-file>.cpio の中身を閲覧する [#wf181ce6] - tar -tvf のように、内包するファイルのリストを表示させる $ cpio -it < <target-file>.cpio //----------------------------------------------------------------------------- *** cpio で POSIX.1 tar format を取り扱う [#cpio-posix-tar] - tar.bz2 archive を作成 $ find -print <target-dir> | cpio -o -H ustar | pbzip2 > archive-name.tar.bz2 -- "cpio -o -H ustar" の代わりに "cpio -oH ustar" と書いても動作する - 上で作ったものは、tar -xvjf で正常に解凍出来る。 - 尚、 PISIX.1 tar フォーマットは、 GNU tar フォーマットと似ているが同じ物ではない。しかしながら GNU tar でも取り扱うことが出来る。 //============================================================================= ** 参考リンク [#links] - [[なぜ 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]] /////////////////////////////////////////////////////////////////////////////// * lzh / lha [#i888a0c4] //----------------------------------------------------------------------------- ** 解凍 [#p3922984] - 解凍時は、-e または -x を使う $ lha -e <archive-file> $ lha -x <archive-file> //----------------------------------------------------------------------------- ** 圧縮 [#l7aea468] //----------------------------------------------------------------------------- ** option [#nd6e7d30] |~option |~description |~remark | | -l <archive-file> | <archive-file> に含まれるファイルの一覧を表示する | |