圧縮・アーカイブ

May 15, 2018

圧縮、解凍系

gzip

オプション 説明
-d 圧縮ファイルの展開
-c 標準出力へ出力
-r ディレクトリ内のファイルをすべて圧縮
$ gzip -r Gzip/  
$ ls Gzip/  
a.gz  b.gz  c.gz  
$ gzip -d Gzip/a.gz   
$ ls Gzip/  
a  b.gz  c.gz  

bzip2

gzip より圧縮効率は高いが処理に時間がかかる。

オプション 説明
-d 圧縮ファイルの展開
-c 標準出力へ出力
$ bzip2 test.txt   
$ ls test.txt.bz2   
test.txt.bz2  
$ bzip2 -dc test.txt.bz2   
a;lsdkjf;lakjssssasn,dmnf.a,smnd.,jkwa;eiur;alejkra;ejjjjjjjjjjjjjjjjjjjjjjjjjjjjj  

xz

bzip2 より圧縮効率が高いが、処理にさらに時間がかかる。

オプション 説明
-d 圧縮ファイルの展開
-k 圧縮* 解凍後に元ファイルを削除しない
-l 圧縮ファイル内のファイルを一覧表示する
$ xz -k test.txt   
$ ls test*  
test.txt  test.txt.xz  
$ xz -l test.txt.xz   
Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename  
    1       1        120 B         83 B  1.446  CRC64   test.txt.xz  

アーカイブ作成* 展開

tar

オプション 説明
-c アーカイブ作成
-x アーカイブからファイル取り出し
-t アーカイブの内容を確認
-f ファイル名 アーカイブファイル名を指定
-z gzip 圧縮
-j bzip2 圧縮
-J xz 圧縮
-v 詳細な情報を表示
-u アーカイブ内にある同盟ファイルより新しいものだけを追加する
-r アーカイブにファイルを追加する
-N 指定した日付より新しいデータのみを対象とする
-M 複数デバイスへの分割を行う
—delete アーカイブからファイルを削除
$ sudo tar cvf /dev/xvdb2 /home/  
tar: Removing leading `/' from member names  
/home/  
/home/ec2-user/  
/home/ec2-user/mnt/  
/home/ec2-user/mnt/sdb1/  
/home/ec2-user/mnt/sdb1/testfile  
  
...  
  
$ tar cvfz files.tar.gz LinuxBootCamp/  
LinuxBootCamp/  
LinuxBootCamp/Chapter6/  
LinuxBootCamp/Chapter6/cache.c~  
LinuxBootCamp/Chapter6/cache  
LinuxBootCamp/Chapter6/cache.c  
  
...  
  
$ ls -l files.tar.gz   
-rw-rw-r-- 1 ec2-user ec2-user 54477 May 14 23:21 files.tar.gz  
  
$ tar xvfz files.tar.gz   
LinuxBootCamp/  
LinuxBootCamp/Chapter6/  
LinuxBootCamp/Chapter6/cache.c~  
LinuxBootCamp/Chapter6/cache  
LinuxBootCamp/Chapter6/cache.c  
  
...  
  
$ sudo tar tf /dev/xvdb2  
home/  
home/ec2-user/  
home/ec2-user/mnt/  
home/ec2-user/mnt/sdb1/  
home/ec2-user/mnt/sdb1/testfile  
home/ec2-user/mnt/sdb1/lost+found/  
home/ec2-user/.bash_profile  
  
...  
  
$ sudo tar xvf /dev/xvdb2 home/ec2-user/LinuxBootCamp/Chapter6/cache.c  
home/ec2-user/LinuxBootCamp/Chapter6/cache.c  
  
$ ls -l home/ec2-user/LinuxBootCamp/Chapter6/cache.c   
-rw-rw-r-- 1 ec2-user ec2-user 1382 May  4 17:25 home/ec2-user/LinuxBootCamp/Chapter6/cache.c  

cpio

ファイルをアーカイブファイルにコピーしたり、アーカイブからファイルをコピーする。

オプション 説明
-i オプション パターン アーカイブからファイルを抽出
-o オプション アーカイブを作成
-p オプション ディレクトリ ファイルを別のディレクトリにコピー
-A 既存のアーカイブにファイルを追加
-d 必要ならディレクトリを作成
-r ファイル名を対話的に変更
-t コピーはせず、入力された内容を一覧表示
-v ファイル名の一覧を表示
$ ls | cpio -o > backup  
31 blocks  

 © 2023, Dealing with Ambiguity