ファイル管理
-CentOS- | -Ubuntu-

Linuxのアーカイブと圧縮

Linux環境で、複数のファイルをひとまとめにするとき、アーカイブ処理を行い、ファイルをひとまとめにする。そのファイルをインターネットなどに公開する場合はアーカイブファイルを圧縮するのが一般的になる。

アーカイブと圧縮の流れ

 

ファイルのアーカイブや展開を行う

「tar」コマンド

書式
tar [オプション] ファイル
主なオプション名 説明
c アーカイブファイルを作成する。
x アーカイブファイルを展開する。
z gzip形式を圧縮・展開する。
j bzip形式を圧縮・展開する。
J xz形式を圧縮・展開する。
t アーカイブファイルの内容を参照する。
v 処理したファイルの一覧を表示する。
f ファイル名 アーカイブファイル名を指定する。
引数 操作するファイルを指定する。

tarコマンドの実行(CentOS, Ubuntu)

Splitと名前のつくファイルをまとめる

$ tar cvf split.tar Split.* -1-
Split.aa
Split.ab
Split.ac
$ ls
Split.aa Split.ab Split.ac split.tar
  1. アーカイブファイルを名前を指定して作成し、処理したファイルを一覧表示する。

作成したアーカイブファイルを展開する

$ cp split.tar dir -1-
$ cd dir -2-
$ tar xf split.tar -3-
$ ls
Split.aa Split.ab Split.ac split.tar
  1. split.tarファイルをディレクトリdirにコピーする。
  2. ディレクトリdirに移動する。
  3. アーカイブファイルを指定して展開する。

 

圧縮形式と対応するコマンド

圧縮形式 圧縮コマンド 解凍コマンド
gzip形式 gzip gunzip(gzip -d)
bzip2形式 bzip2 bunzip2(bzip2 -d)
xz形式 xz unxz(xz -d)

gzipコマンドの実行(CentOS, Ubuntu)

$ gzip split.tar -1-
$ ls
split.tar.gz -2-
  1. アーカイブファイルsplit.tarを圧縮する。
  2. アーカイブファイルsplit.tarが圧縮され、ファイルsplit.tar.gzになる。

アーカイブと圧縮を同時に行う

$ tar czvf split.tar.gz Split.a* -1-
Split.aa
Split.ab
Split.ac
  1. アーカイブと同時に圧縮をし、ファイルを名前を指定して作成し、処理したファイルを一覧表示する。

 

cpioコマンドでアーカイブ処理を実行する

「cpio」コマンド

コピーインモード、コピーアウトモード、コピーパスモードの3つのモードでアーカイブを操作する。ただし、引数を受け取らないので「パイプ」「リダイレクト」を使う。

書式
cpio [モード]
主なモード 説明
-i コピーインモード(アーカイブからファイルを取り出す)
-o コピーアウトモード(アーカイブを作成する)
-p コピーパスモード(異なるディレクトリ庄行きにファイルを出力する)

cpioコマンドの実行[コピーインモード](CentOS, Ubuntu)

$ cpio -i < split.tar -1-
  1. アーカイブファイルsplit.tarからファイルをコピーする。

cpioコマンドの実行[コピーアウトモード](CentOS, Ubuntu)

$ ls Split.a* | cpio -o > split.dat -1-
  1. データファイルsplit.datを作成する。

 

ddコマンドでアーカイブ処理を実行する

「dd」コマンド

パーティション領域をすべてアーカイブ操作することができる。

書式
dd [オプション]
主なオプション 説明
if=入力ファイル 入力側ファイルを指定する。
デフォルトは標準入力
of=出力ファイル 出力側ファイルを指定する。
デフォルトは標準出力
入力ファイル 出力元となるデバイスファイルやアーカイブファイルを指定する。
出力ファイル 出力先となるデバイスファイルやアーカイブファイルを指定する。

ddコマンドの実行[アーカイブ処理](CentOS, Ubuntu)

$ dd if=/dev/sda1 of=boot.dat -1-
  1. ディレクトリの内容をboot.datというファイルにアーカイブしている。

ddコマンドの実行[複製](CentOS, Ubuntu)

$ sudo dd if=/dev/sdd of=/dev/sde -1-
  1. ディスクの内容をすべて別ディスクに複製できる。

 

参照元情報

LinuCレベル1 合格教本
LinuCレベル1 合格教本