tarコマンドは、ディレクトリ構成を含む、複数のファイルから、ひとつのTAR形式アーカイブファイルを作成したり、TAR形式アーカイブファイルの内容を表示、復元します。
アーカイブとは、複数のファイルをひとまとめにすることです。アーカイブして作成したファイルをアーカイブファイルといい、cpio形式ファイルやTAR形式ファイルがあります。TAR形式アーカイブファイルは、ディレクトリ構成を忠実に復元できるため、元々パッケージファイルをネットワーク上で公開する目的で使用されました。現在でも、TARボールと呼ばれる、配布ファイル群(ディレクトリ構成含む)をTAR形式アーカイブファイルにまとめ、それをzip形式に圧縮して配布している例が多く見受けられます。
SolarisのtarコマンドとLinuxおよびFreeBSDのtarコマンドは異なるものです。Solarisのtarコマンドは元々UNIXシステムに入っていたコマンドであり、その主目的はテープ装置にファイルを格納するものでした。LinuxおよびFreeBSDのtarコマンドはGNU版のtarコマンドであり、従来のtarコマンドに独自の機能を追加しています
- ① c
- ディレクトリ構成を含むディレクトリおよびファイルからTAR形式アーカイブファイルを作成します。
- ② x
- TAR形式アーカイブファイルからディレクトリおよびファイルを復元します。
- ③ t
- TAR形式アーカイブファイルに含まれるディレクトリおよびファイルの構成を一覧表示します。
- ④ u
- TAR形式アーカイブファイルにファイルを追加します。指定したファイルの中で、TARアーカイブファイル内に存在しないファイル、または更新されたファイルを、追加あるいは更新します。
- ⑤ r
- TAR形式アーカイブファイルの末尾にファイルを追加します。同一名のファイルも追加します。
- ⑥ A [Linux][FreeBSD]
- TAR形式アーカイブファイルに別のTAR形式アーカイブファイルを結合して、ひとつのアーカイブファイルを作成します。
- ⑦ v
- 処理したファイルの一覧を詳しく表示します。TAR形式アーカイブファイルにまとめるファイルの数が多い時など、その処理経過を見ることができます。処理したファイルをカレントディレクトリからの相対パス名で表示します。
- ⑧ f AFILE
「AFILE」に、アーカイブファイルのファイル名またはデバイスファイル名を指定します。
省略した場合は、「/dev/rmt0」(テープドライブのデバイスファイル)を指定したことになります。
ディスク上のファイルとして出力する場合には、TAR形式アーカイブファイルであることを示す「.tar」という拡張子を付けます。また、オプション「z」を付けた場合には、「.tar.gz」という拡張子を付けます。
- ⑨ z [Linux][FreeBSD]
- TAR形式アーカイブファイルを作成と同時に、zip形式の圧縮を行います。
「c」「x」「t」「u」「r」「A」のオプションのうち、少なくともひとつは必ず指定しなければなりません。これらのオプションを機能文字または機能指定文字といい、それ以外のオプションを機能修飾子といいます
tarコマンドのオプションは、オプションを示す「-」(ハイフン)を付けずに指定します
zip形式とはWindowsやUNIXで広く使われている圧縮形式です。一方gzip形式はUNIXでよく使われる圧縮形式です
- ① FILE...
- アーカイブするファイルまたはディレクトリを指定します。複数指定する場合は、ファイル名およびディレクトリ名をスペースで区切って指定します。ワイルドカードの指定も可能です。
[takeda]$ tar cvf dir01.tar dir01
ディレクトリ「dir01」から、「dir01.tar」というアーカイブファイルを作成dir01/
dir01/file11
dir01/file02
dir01/dir01/
オプション「v」を指定すると、処理が完了したファイル名とディレクトリ名を表示[takeda]$
ディレクトリ構成が保持されている
[takeda]$ tar tf dir01.tar
アーカイブファイル「dir01.tar」の内容を表示dir01/
dir01/file11
dir01/file02
dir01/dir01/
[takeda]$
[takeda]$ ls
dir01.tar
[takeda]$ tar xvf dir01.tar
アーカイブファイル「dir01.tar」を復元dir01/
オプション「v」を指定して、処理経過を表示
dir01/file11
dir01/file02
dir01/dir01/
dir01 dir01.tar
[takeda]$ ls
dir01 dir01.tar
[takeda]$
[takeda]$ tar tf dir01.tar
dir01/
dir01/file11
dir01/file02
dir01/dir01/
処理前のアーカイブファイル「dir01.tar」の内容[takeda]$ tar rvf dir01.tar file02 file11
アーカイブファイル「dir01.tar」に「file02」と「file11」を追加file02
オプション「v」を指定して処理経過を表示
file11
[takeda]$ tar tf dir01.tar
dir01/
dir01/file11
dir01/file02
dir01/dir01/
file02
file11
追加された[takeda]$
[takeda]$ tar tf dir01.tar
dir01/
dir01/file11
dir01/file02
dir01/dir01/
処理前のアーカイブファイル「dir01.tar」の内容[takeda]$ tar tf file.tar
file02
file11
アーカイブファイル「file.tar」の内容[takeda]$ tar Af dir01.tar file.tar
「dir01.tar」に「file.tar」を結合[takeda]$ tar tf dir01.tar
dir01/
dir01/file11
dir01/file02
dir01/dir01/
file02
file11
追加された[takeda]$
[takeda]$ tar cvf dir01.tar dir01
ディレクトリ「dir01」をアーカイブして「dir01.tar」を作成dir01/
dir01/file11
dir01/file02
dir01/dir01/
[takeda]$ touch dir01/file02
「dir01」内のファイル[takeda]$ tar uvf dir01.tar dir01
「file02」の日付を更新
オプション「u」を指定して、「dir01」をアーカイブdir01/file02
オプション「v」を指定して処理経過を表示すると、更新された「file02」だけが置き換えられていることがわかる[takeda]$
[takeda]$ tar cvzf dir03/dir01.tar.gz dir01
ディレクトリ「dir01」をアーカイブして、同時にzip形式の圧縮を行うdir01/
圧縮済みアーカイブファイル「dir01.tar.gz」を作成
dir01/file11
dir01/file02
dir01/dir01/
[takeda]$ cd dir03
[takeda]$ ls
dir01.tar.gz
[takeda]$
[takeda]$ ls
dir01.tar.gz
zip形式の圧縮済みアーカイブファイル[takeda]$ tar xzvf dir01.tar.gz
オプション「x」と「z」を指定して、解凍と同時に復元dir01/
dir01/file11
dir01/file02
dir01/dir01/
[takeda]$ ls
dir01 dir01.tar.gz
[takeda]$
UNIX系OSでのソフトの配布は、TARボールというTARアーカイブファイルをgzip形式で圧縮したもので行われています。最近では、インストール用のソフトが開発され、ユーザに対する利便性を向上しています。代表的なものにRedHatのRPMパッケージがあります。ただし、オープンソースであるLinuxやFreeBSDでは、ソースを配布し、自分のコンピュータ上でコンパイルしてアプリケーションをインストールすることも盛んに行われており、これにTARボールが使用されています。
関連タグ
本コンテンツは「UNIXコマンド辞典 ビギナー編」(2003年)を元にWeb用に再編集したものです
All Contents copyright © 2003-2009 Odyssey Communications Inc., Shoeisha Co., Ltd.