
-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
- アーカイブファイルを名前を指定して作成し、処理したファイルを一覧表示する。
作成したアーカイブファイルを展開する
$ cp split.tar dir -1-
$ cd dir -2-
$ tar xf split.tar -3-
$ ls
Split.aa Split.ab Split.ac split.tar
- split.tarファイルをディレクトリdirにコピーする。
- ディレクトリdirに移動する。
- アーカイブファイルを指定して展開する。
圧縮形式と対応するコマンド
圧縮形式 | 圧縮コマンド | 解凍コマンド |
---|---|---|
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-
- アーカイブファイルsplit.tarを圧縮する。
- アーカイブファイルsplit.tarが圧縮され、ファイルsplit.tar.gzになる。
アーカイブと圧縮を同時に行う
$ tar czvf split.tar.gz Split.a* -1-
Split.aa
Split.ab
Split.ac
- アーカイブと同時に圧縮をし、ファイルを名前を指定して作成し、処理したファイルを一覧表示する。
cpioコマンドでアーカイブ処理を実行する
「cpio」コマンド
コピーインモード、コピーアウトモード、コピーパスモードの3つのモードでアーカイブを操作する。ただし、引数を受け取らないので「パイプ」「リダイレクト」を使う。
書式 |
---|
cpio [モード] |
主なモード | 説明 |
---|---|
-i | コピーインモード(アーカイブからファイルを取り出す) |
-o | コピーアウトモード(アーカイブを作成する) |
-p | コピーパスモード(異なるディレクトリ庄行きにファイルを出力する) |
cpioコマンドの実行[コピーインモード](CentOS, Ubuntu)
$ cpio -i < split.tar -1-
- アーカイブファイルsplit.tarからファイルをコピーする。
cpioコマンドの実行[コピーアウトモード](CentOS, Ubuntu)
$ ls Split.a* | cpio -o > split.dat -1-
- データファイルsplit.datを作成する。
ddコマンドでアーカイブ処理を実行する
「dd」コマンド
パーティション領域をすべてアーカイブ操作することができる。
書式 |
---|
dd [オプション] |
主なオプション | 説明 |
---|---|
if=入力ファイル | 入力側ファイルを指定する。 デフォルトは標準入力 |
of=出力ファイル | 出力側ファイルを指定する。 デフォルトは標準出力 |
入力ファイル | 出力元となるデバイスファイルやアーカイブファイルを指定する。 |
出力ファイル | 出力先となるデバイスファイルやアーカイブファイルを指定する。 |
ddコマンドの実行[アーカイブ処理](CentOS, Ubuntu)
$ dd if=/dev/sda1 of=boot.dat -1-
- ディレクトリの内容をboot.datというファイルにアーカイブしている。
ddコマンドの実行[複製](CentOS, Ubuntu)
$ sudo dd if=/dev/sdd of=/dev/sde -1-
- ディスクの内容をすべて別ディスクに複製できる。
参照元情報