このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:アーカイブの展開:tarコマンド

アーカイブの展開:tarコマンド
tarコマンドは、複数のファイルやディレクトリを一つのアーカイブファイルにまとめるだけでなく、そのアーカイブファイルから元のファイルやディレクトリを取り出すためにも利用されます。ここでは、tarコマンドを使ってアーカイブファイルを展開する方法について解説します。

アーカイブの展開の概要
tarコマンドとは
- 目的:アーカイブファイルの作成と展開(解凍)を行う。
- 主な機能:ファイルやディレクトリのバックアップ、移動、配布。
基本的なオプション
| オプション | 意味 |
|---|---|
x | アーカイブの展開(extract) |
f | ファイル名の指定(file) |
v | 詳細情報の表示(verbose) |
t | アーカイブ内容の一覧表示(list) |
練習用ファイルの作成
まず、tarコマンドでアーカイブを展開する練習用のファイルとディレクトリを作成します。
手順
ディレクトリの作成
user01@ubuntu:~$ mkdir dirファイルの作成
user01@ubuntu:~$ touch dir/file-{1..9}.txt結果
dirディレクトリ内に9つのファイルが作成されます。
user01@ubuntu:~$ ls dir
file-1.txt file-2.txt file-3.txt file-4.txt file-5.txt file-6.txt
file-7.txt file-8.txt file-9.txtブレース展開について
{1..9}は、Bashのブレース展開という機能を利用しています。- 書式:
{開始値..終了値} - 使用例
user01@ubuntu:~$ echo {a..z}.txt
a.txt b.txt c.txt d.txt e.txt f.txt g.txt h.txt i.txt j.txt
k.txt l.txt m.txt n.txt o.txt p.txt q.txt r.txt s.txt t.txt
u.txt v.txt w.txt x.txt y.txt z.txtアーカイブファイルの作成
次に、dirディレクトリをアーカイブファイルにまとめます。
user01@ubuntu:~$ tar cf dir.tar dirc:アーカイブの作成(create)f:ファイル名の指定(file)
結果の確認
user01@ubuntu:~$ ls -l
合計 60
drwxrwxr-x 2 user01 user01 4096 11月 24 15:59 bin
drwxrwxr-x 2 user01 user01 4096 11月 30 03:05 dir
-rw-rw-r-- 1 user01 user01 10240 11月 30 03:20 dir.tar
...(以下省略)...dir.tarというアーカイブファイルが作成されました。
アーカイブの展開
作成したアーカイブファイルを展開し、元のファイルやディレクトリを取り出します。
基本書式
【書式】アーカイブファイルの展開tar xf <アーカイブファイル>
x:アーカイブの展開(extract)f:ファイル名の指定(file)
手順
1.元のディレクトリを削除
user01@ubuntu:~$ rm -r dir2.アーカイブファイルを展開
user01@ubuntu:~$ tar xf dir.tar3.展開結果の確認
user01@ubuntu:~$ ls dir
file-1.txt file-3.txt file-5.txt file-7.txt file-9.txt
file-2.txt file-4.txt file-6.txt file-8.txt注意:アーカイブを展開する前に、同名のファイルやディレクトリが存在すると上書きされてしまう可能性があります。必要に応じてバックアップを取るか、別のディレクトリで展開してください。
ファイルリストを表示するvオプション
v(verbose)オプションを使用すると、アーカイブ作成時や展開時に処理されているファイルのリストが表示されます。
アーカイブ作成時の例
user01@ubuntu:~$ tar cvf dir.tar dir
dir/
dir/file-9.txt
dir/file-3.txt
dir/file-5.txt
dir/file-7.txt
dir/file-4.txt
dir/file-6.txt
dir/file-1.txt
dir/file-8.txt
dir/file-2.txtアーカイブ展開時の例
user01@ubuntu:~$ tar xvf dir.tar
dir/
dir/file-9.txt
dir/file-3.txt
dir/file-5.txt
dir/file-7.txt
dir/file-4.txt
dir/file-6.txt
dir/file-1.txt
dir/file-8.txt
dir/file-2.txtポイント
vオプションを付けることで、処理されているファイルが一覧表示されます。- しかし、ファイル数が多い場合は出力が多くなり、エラーメッセージが見落とされる可能性があります。
アーカイブ内容の詳細表示
tオプションとvオプションを組み合わせると、アーカイブ内のファイルの詳細情報(パーミッション、所有者、サイズ、日時など)を表示できます。
user01@ubuntu:~$ tar tvf dir.tar
drwxrwxr-x user01/user01 0 日付 dir/
-rw-rw-r-- user01/user01 0 日付 dir/file-1.txt
-rw-rw-r-- user01/user01 0 日付 dir/file-2.txt
...(以下省略)...ファイル属性の保持
tarコマンドは、ファイルのパーミッション、所有者、タイムスタンプなどの属性をそのままアーカイブします。
- 利点:バックアップや移行時に、ファイル属性を維持できる。
- 注意点:一般ユーザーが
tarコマンドを使用すると、所有者やグループ情報の復元が制限される場合があります。
例
rootユーザーが所有するファイルを一般ユーザーが展開すると、所有者は自分(一般ユーザー)になります。- 完全なバックアップ・リストアを行う場合は、
rootユーザーでtarコマンドを実行する必要があります。
ここで作成したファイルとディレクトリを削除
練習用に作成したファイルとディレクトリを削除します。
コマンド
user01@ubuntu:~$ rm -r dir
user01@ubuntu:~$ rm dir.tar注意:rm -rコマンドはディレクトリとその中の全てのファイルを削除します。重要なデータを削除しないように注意してください。
まとめ
tarコマンドの展開:xオプションを使用してアーカイブファイルを展開します。- オプションの活用:
・x:アーカイブの展開
・v:処理中のファイルを表示(verbose)
・t:アーカイブ内容の一覧表示 - ファイル属性の保持:
tarコマンドはファイルのパーミッションや所有者などの属性を維持します。 - 注意点:アーカイブを展開する際は、同名のファイルが存在しないか確認し、必要に応じてバックアップを取ることが重要です。
tarコマンドを正しく理解し活用することで、効率的なバックアップやファイルの移行が可能になります。特にシステム管理者にとっては、ファイル属性の保持や権限の管理が重要なポイントとなりますので、十分に注意して操作を行ってください。
