このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンドの基本:ファイルをアーカイブする:tarコマンド

ファイルをアーカイブする:tarコマンド

 tarコマンドは、複数のファイルやディレクトリを一つのアーカイブファイルにまとめたり、逆にアーカイブファイルから元のファイルを取り出すために利用される、Linuxで広く使われているコマンドです。ここでは、tarコマンドの基本的な使い方を学びます。

tarコマンドの概要

tarコマンドとは

  • 目的:複数のファイルやディレクトリを一つのアーカイブファイルにまとめる。
  • 歴史tarはTape Archiveの略で、もともとテープデバイスにファイルをアーカイブするために開発されましたが、現在では様々なデバイスやファイル形式で利用されています。
  • 拡張子:アーカイブファイルには慣習として.tarという拡張子を付けます。

基本的なオプション

オプション意味
cアーカイブの作成(create)
fファイル名の指定(file)
tアーカイブ内容の一覧表示(list)
v詳細情報の表示(verbose)
xアーカイブからの展開(extract)
zgzip形式で圧縮・解凍(gzip)
jbzip2形式で圧縮・解凍(bzip2)
Jxz形式で圧縮・解凍(xz)

練習用ファイルの準備

まずは、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

カンマ区切りの例

user01@ubuntu:~$ echo test.{txt,log,dat,pdf,jpg}
test.txt test.log test.dat test.pdf test.jpg

ブレース展開を利用すると、連番や複数の文字列を簡単に生成できます。

アーカイブファイルの作成

それでは、tarコマンドを使ってdirディレクトリをアーカイブファイルにまとめます。

基本書式

【書式】ファイルをアーカイブする
tar cf <アーカイブファイル> <アーカイブ元ファイルパス>

  • c:新しいアーカイブを作成(create)
  • f:ファイル名を指定(file)

実行例

user01@ubuntu:~$ tar cf dir.tar dir

 このコマンドで、dirディレクトリとその中のファイルがdir.tarというアーカイブファイルにまとめられます。

結果の確認

user01@ubuntu:~$ ls -l
合計 ***
drwxrwxr-x 2 user01 user01  4096 日付 dir
-rw-rw-r-- 1 user01 user01 大きさ 日付 dir.tar

ポイントtarコマンドでは、オプションにハイフン(-)を付けずに指定するのが一般的です。

コマンド例

下記の2つは同じ意味ですが、ハイフンを付けない書き方がよく使われます。

tar cf dir.tar dir
tar -cf dir.tar dir

アーカイブファイルの内容確認

作成したアーカイブファイルの内容を確認するには、tオプションを使用します。

基本書式

【書式】アーカイブファイルの内容を表示する
tar tf <アーカイブファイル>

  • t:アーカイブの内容を一覧表示(list)
  • f:ファイル名を指定(file)

実行例

user01@ubuntu:~$ tar tf dir.tar
dir/
dir/file-1.txt
dir/file-2.txt
dir/file-3.txt
dir/file-4.txt
dir/file-5.txt
dir/file-6.txt
dir/file-7.txt
dir/file-8.txt
dir/file-9.txt

このように、dirディレクトリ内のファイルがアーカイブに含まれていることが確認できます。

ここで作成したファイルとディレクトリを削除

練習用に作成したファイルとディレクトリを削除します。

コマンド

user01@ubuntu:~$ rm -r dir
user01@ubuntu:~$ rm dir.tar

注意rm -rコマンドはディレクトリとその中身を削除します。重要なファイルを削除しないように注意してください。

まとめ

  • tarコマンドの基本:複数のファイルやディレクトリを一つのアーカイブファイルにまとめることができます。
  • 主なオプション
    c:アーカイブの作成
    f:ファイル名の指定
    t:アーカイブ内容の一覧表示
  • ブレース展開の活用{}を使って、連番や複数の文字列を簡単に生成できます。
  • アーカイブの確認tar tfコマンドで、アーカイブファイルの内容を確認できます。
  • オプション指定の慣習tarコマンドでは、オプションにハイフンを付けない書き方が一般的です。

 これらの基本操作を理解することで、tarコマンドを使ったファイルのアーカイブ・展開がスムーズに行えるようになります。