archive and compress
compress
gzip
gzip filename
gunzip -lv filename.gz
gunzip filename.gz
gzip -c filename > filename.gz
gunzip -c filename.gz > filename
zless filename.gz
bzip2
bzip2 filename
bunzip2 filename.bz2
bzip2 -c filename > filename.bz2
bunzip2 -c filename.bz2 > filename
bzless filename.bz2
xz
xz filename
unxz filename.xz
xz -c filename > filename.xz
unxz -c filename.xz > filename
xzless filename.xz
Archive
tar
tar cf filename.tar filename.0
tar cf filename.tar dirname
tar tvf filename.tar
tar xv filename.tar [path/to/dir/targetfile]
zip
zip filename.zip filename
zip -r filename.zip dirname
unzip -lv filename.zip
unzip filename.zip [path/to/dir/targetfile]
7zip
7z a filename.7z filename
7z a -r filename.7z dirname
7z l filename.7z
7z x filename.7z [path/to/dir/targetfile]
tarとgzip
GNU版tarが使えない時のtar.gzファイルの圧縮
tar cf - file or dir ... | gzip -c > archive.tar.gz
同じく展開
gzip -cd archive.tar.gz | tar xf -
tar、gzipからbase64でエンコード。デコード・展開の確認
tar cf - file or dir ... | gzip -c | base64 - | base64 -i -d - | gzip -cd | tar tvf -
tar cf - file or dir ... | gzip -c | openssl enc -a | openssl enc -a -d | gzip -cd | tar tvf -
ログがローテートされてgzipで圧縮されると、いちいち展開して読むのがめんどくさい と思ってた。 以下のようなツールがあり、gzipで固められたテキストファイルをいちいち展開せずに処理することができる。超便利。
zcat zgrep zdiff zless
for bzip2
bzcat bzgrep bzdiff bzless
for xz
xzcat xzgrep xzdiff xzless
for zip
zipgrep
tar の圧縮オプション
- Z: compress (Z)
- z: gzip (gz)
- j: bzip2 (bz2)
- J: xz (xz)
zip
microsoft系osでもおなじみの形式
tarでアーカイブしてzip圧縮。展開の確認
tar cf - file or dir ... | zip - - | funzip | tar tvf -
無圧縮zipアーカイブ
zip -0r archive.zip dirname
暗号化
zip -e archive.zip filename
zipの標準的な暗号化方式は強度が弱い。また、アーカイブヘッダが暗号化されず、ファイル名等は隠匿できない。
- 一定期間経てば保護する必要がなくなる内容を暗号化する用途であれば問題ない。
- 見られても困らないファイル名になっているなら問題ない。
ならよいが、そうでなければ下記の対応が必要となる。
- zipファイルを他のツール(gpg等)で暗号化する。
- 他のアーカイブツール(7z等)を使う。
7z
zipよりも高い圧縮率をサポート。暗号化方式としてAES256をサポート。アーカイブヘッダの暗号化をサポート。 7zではファイルのuid/gidは保持しない。
(ubuntuのp7zipパッケージに含まれる7zrでは、暗号化できなかった。 p7zip-fullパッケージの7zを使うことで、暗号化することができた。)
7z形式で暗号化して圧縮(アーカイブヘッダも暗号化)。
7z a -t7z -p -mhe=on archive.7z dirname
lコマンドの-sltオプションで、暗号化されているか確認することができる。
7z l -slt archive.7z
ファイルの場合、悪意ある人の手に渡ったら、高性能の計算機で長時間パスワード解析されてしまう。 (キャッシュカードのPINコードのように、一定時間に一定回数失敗したら保護される、ということはない。) 内容が漏れたら困る暗号化ファイルには長いパスワードを使う。
圧縮音声など、さらなる圧縮を望まない場合、zipや7z等ではアーカイブのみで圧縮しないこともできる。
zip -0 ....
7z a -mx=0 ....