COMPUTER LINUX

【Linux】ファイルアーカイブ

 

複数のファイルやディレクトリー内のファイルをまとめてひとつのファイルにしたり、テープに書き込んだりすることをアーカイブするといいます。
ファイルをアーカイブするには、tar(ター)コマンドを使います。
tarは「Tape ARchive」の略で、元々はDATやLTOなどのテープデバイスにファイルを保存するためのコマンドですが、現在はテープデバイスに保存するより、ログなどをひとつのファイルにまとめて圧縮する用途で使われることが多いです。

 

tarコマンドのオプション

tarコマンドは、複数のオプションを組み合わせて使います。
tarコマンドの基本的なオプションは、以下のようになります。

■ 必須オプション(必須オプションは同時に複数指定できません)

オプション 内容
c 新しいアーカイブを作成
t アーカイブの内容を表示
x アーカイブを展開

■ 任意オプション

オプション 内容
f アーカイブ名を指定(テープの場合はデバイス名)
v 処理したファイルの一覧を表示(tオプション時はファイルの詳細表示)
z アーカイブ時、gzip形式で圧縮

 

ファイルをアーカイブする

ファイルをアーカイブするには、以下のようにします。
ワイルドカードや正規表現を使うことで、ファイルを絞り込むこともできます。
なお、アーカイブの拡張子は、一般的にtarにします

tar cvf アーカイブ名 ディレクトリー名またはファイルパターン

 実行例
$ tar cvf sample.tar log
log/
log/backup1.log
log/backup2.log

 

アーカイブの内容を確認する

アーカイブの内容を確認するには、以下のようにします。

tar tvf アーカイブ名

 実行例
$ tar tvf sample.tar
drwxrwxr-x ec2-user/ec2-user 0 2020-03-18 18:46 log/
-rw-rw-r-- ec2-user/ec2-user 63 2020-03-18 18:46 log/backup1.log
-rw-rw-r-- ec2-user/ec2-user 63 2020-03-12 22:14 log/backup2.log

 

アーカイブを展開する

アーカイブを展開するには、以下のようにします。

tar xvf アーカイブ名

 実行例
$ tar xvf sample.tar
log/
log/backup1.log
log/backup2.log

 

アーカイブから特定のファイルのみ展開する

アーカイブから特定のファイルのみ展開するには、以下のようにします。
ファイル名は、アーカイブ内のディレクトリーも含めて指定する必要があります。

tar xvf アーカイブ名 ファイル名

 実行例
$ tar xvf sample.tar log/backup1.log
log/backup1.log

 

アーカイブを圧縮して作成する

アーカイブを圧縮して作成するには、以下のようにします。
なお、圧縮したアーカイブも、普通のアーカイブと同様のオプションで展開できます。

tar cvfz アーカイブ名 ディレクトリー名またはファイルパターン

 実行例
$ tar sample.tar log
log/
log/backup1.log
log/backup2.log

 

-COMPUTER, LINUX