(Tar.gz から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/09/24 13:40 UTC 版)
| |
|
| 拡張子 | .tar |
|---|---|
| MIMEタイプ | application/x-tar |
| タイプコード | "TARF" |
| UTI | public.tar-archive |
| マジック ナンバー |
ustar\000すなわち「ustar」、NUL、算用数字の零2個の計8バイト(POSIX tar)ustar\040\040(GNU tar)(いずれも0から数えて257バイト目から) |
| 種別 | ファイルアーカイブ |
| 開発元 | GNUプロジェクト |
|---|---|
| 最新版 |
1.35 / 2023年7月18日[1]
|
| リポジトリ | git |
| プログラミング 言語 |
C言語 |
| ライセンス | GNU GPL v3 以降 |
| 公式サイト | www |
| 最新版 |
3.7.3 / 2024年4月8日[2]
|
|---|---|
| リポジトリ | github |
| プログラミング 言語 |
C言語 |
| ライセンス | New BSD License |
| 公式サイト | www |
tar(ター、tape archives)はファイルアーカイブのファイルフォーマットの一種である。このファイルフォーマットを処理する同名のUNIXコマンドtarも指す。UNIXでは圧縮したtar形式のファイルを"tarball"(ターボール)と呼ぶこともある。POSIX.1-1988[3]やPOSIX.1-2001[4]で規格化され、UNIX系オペレーティングシステムでは標準のフォーマットである。Windows では Windows 10 Build 17063 (Version 1803) 以降からコマンドラインツールが標準搭載されていて[5]、File Explorer では Windows 11 Build 23493[6] (Version 22H2[7]) 以降は解凍に対応していて、Windows 11 Build 25992[8] (Version 24H2[9])以降は圧縮に対応している。
tarはファイルのアーカイブに用いられ、多数のファイルを一つのファイルにまとめることができる。ファイルのユーザ情報とグループ情報、パーミッション、最終更新日時、ディレクトリ構造などを同時にアーカイブすることができる。
元来tarはアーカイブ、すなわち複数のファイルをまとめることのみで圧縮の機能はない。大半の場合アーカイブと同時にcompress、gzip、bzip2などの圧縮方法を用いて圧縮(いわゆるソリッド圧縮)を行う。これによりファイルの拡張子はそれぞれ .tar.Z、.tar.gz、.tar.bz2 となる。それぞれ略して .taZ、.tgz, .tbz2 とされることも多い。特に gzip は古くから良く使われている。
この形式はファイルが一部でも破損した場合、破損箇所に含まれていたファイル以降は取り出すことはできない。
tarはファイルの属性などのいわゆるメタデータも一緒に含んでいる。以下のテーブルにUNIX tarフォーマットの一例を示す:
Pre-POSIX.1-1988 (i.e. v7):
| オフセット | サイズ | 内容 |
|---|---|---|
| 0 | 100 | ファイル名 |
| 100 | 8 | ファイルモード |
| 108 | 8 | 所有者 User ID |
| 116 | 8 | グループ User ID |
| 124 | 12 | ファイルサイズ(Byte) |
| 136 | 12 | 最終更新時刻(UNIX時間) |
| 148 | 8 | チェックサム |
| 156 | 1 | リンクインジケーター(通常ファイル、ハードリンク、シンボリックリンク) |
| 157 | 100 | リンクされたファイルの名前 |
以下は GNU Tar および bsdtar で共通で利用可能なオプションである。
.tar.Z, .taZ.tar.gz, .tgz, .taz.tar.bz2, .tz2, .tbz2, .tbz.tar.xz.tar.lz.tar.lzma, .tlz(ルールに一貫性がなく .tlz は lzip ではなく lzma になっている).tar.lzo.tar.zst, .tzst2022年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という言葉の由来は「リーマスじいや」の童話『タールの赤ん坊』に由来し[13]、それに油塊(タールボール)を引っ掛けたジョーク的用語である。
その歴史の長さゆえにシステム毎の方言やファイルサイズの制限など多くの非互換部分がある為、異なるシステム間のファイル交換を目的とする場合は慎重に利用する必要がある。近年は GNU Tar と bsdtar が一般的ではあるが、その他、様々な tar が存在する。Windows 10 以降や macOS に搭載されているのは bsdtar であり、Linux で一般的なのは GNU Tar である。BusyBox にも独自の tar が含まれている。