tarはファイルのアーカイブに用いられ、多数のファイルを一つのファイルにまとめることができる。ファイルのユーザ情報とグループ情報、パーミッション、最終更新日時、ディレクトリ構造などを同時にアーカイブすることができる。
圧縮・伸長tarによって複数のファイルを1つにまとめ、gzipなどで圧縮する。
元来tarはアーカイブ、すなわち複数のファイルをまとめることのみで圧縮の機能はない。大半の場合アーカイブと同時にcompress、gzip、bzip2などの圧縮方法を用いて圧縮(いわゆるソリッド圧縮)を行う。これによりファイルの拡張子はそれぞれ .tar.Z、.tar.gz、.tar.bz2 となる。それぞれ略して .taZ、.tgz, .tbz2 とされることも多い。特に gzip は古くから良く使われている。 この形式はファイルが一部でも破損した場合、破損箇所に含まれていたファイル以降は取り出すことはできない。 tarはファイルの属性などのいわゆるメタデータも一緒に含んでいる。以下のテーブルにUNIX tarフォーマットの一例を示す: Pre-POSIX.1-1988 (i.e. v7): オフセットサイズ内容 以下は GNU Tar および bsdtar で共通で利用可能なオプションである。 2022年12月現在、GNU Tar 独自の物として --lzip があり、bsdtar 独自の物としては --lrzip や --lz4 がある。 圧縮レベルや並列圧縮を指定する方法は、 以下は、圧縮・伸長のコマンド例である[11]。 圧縮。tar -caf name.tar.gz directory 伸長。tar -xf name.tar.gz テープデバイスに記録。tar -cf /dev/nst0 directory テープデバイスから読み出す。tar -xf /dev/nst0 テープ上のファイルのリストを表示。リスト表示したいアーカイブファイルの先頭にテープを移動させた後、以下を実行。tar -tf /dev/nst0 tarコマンドはTape ARchiveというその名の通り磁気テープの操作が念頭に置かれていた。fオプション[12]を省いた場合デフォルトで磁気テープデバイスを処理する。fオプションの指定によりファイルシステム上の任意の名前のファイルを処理できる。 tarballという言葉の由来は「リーマスじいや その歴史の長さゆえにシステム毎の方言やファイルサイズの制限など多くの非互換部分がある為、異なるシステム間のファイル交換を目的とする場合は慎重に利用する必要がある。近年は GNU Tar と bsdtar が一般的ではあるが、その他、様々な tar が存在する。Windows 10 以降や macOS に搭載されているのは bsdtar であり、Linux で一般的なのは GNU Tar である。BusyBox にも独自の tar が含まれている。
ヘッダー
0100ファイル名
1008ファイルモード
1088所有者 User ID
1168グループ User ID
12412ファイルサイズ(Byte)
13612最終更新時刻(UNIX時間)
1488チェックサム
1561リンクインジケーター(通常ファイル、ハードリンク、シンボリックリンク)
157100リンクされたファイルの名前
コマンドオプション
-c 新しいアーカイブを作成する
-r アーカイブにファイルを追加する
-t アーカイブの内容をリスト表示する
-u アーカイブ内より新しいファイルを追加する
-x アーカイブからファイルを取り出す
-f file テープの代わりに指定したファイルをアーカイブする。これが指定されていない場合は環境変数 TAPE に従う。それもない場合の挙動はOSやコンパイル時の指定依存。
-v 詳細メッセージを表示する
-C directory directoryに移動してから操作を行う
--newer date 指定した日付よりも新しいファイルだけをアーカイブに入れる(取り出す)
-T file fileの中に記載されているファイル名をアーカイブに入れる(取り出す)。fileの中身は改行区切りで1行1ファイル名。
圧縮・伸長オプション
-a もしくは --auto-compress アーカイブ作成時に拡張子から圧縮プログラムを自動的に決定する。解凍時は何も指定しなくても自動的に決まる。[10]
compress は .tar.Z, .taZ
gzip は .tar.gz, .tgz, .taz
bzip2 は .tar.bz2, .tz2, .tbz2, .tbz
xz は .tar.xz
lzip は .tar.lz
lzma は .tar.lzma, .tlz(ルールに一貫性がなく .tlz は lzip ではなく lzma になっている)
lzop は .tar.lzo
Zstandard は .tar.zst, .tzst
-Z もしくは --compress アーカイブをUNIX Compressで圧縮・伸長する
-z もしくは --gzip アーカイブをgzipで圧縮・伸長する
-j もしくは --bzip2 アーカイブをbzip2で圧縮・伸長する
-J もしくは --xz アーカイブをxzで圧縮・伸長する
--lzma アーカイブをlzmaで圧縮・伸長する
--lzop アーカイブをlzopで圧縮・伸長する
--zstd アーカイブをZstandardで圧縮・伸長する
GNU Tar の場合は tar -cf name.tar.zst -I "zstd -19 -T0" directory のように指定する。aの代わりにIで指定する。
bsdtar の場合は tar -caf name.tar.zst --options=compression-level=19,threads=0 directory のように指定する。
コマンド例
テープデバイス
歴史
関連項目
mt (UNIX)
テープドライブ
Linear Tape-Open
IBM 3592