Tar

tar（ター、tape archives）はファイルアーカイブのファイルフォーマットの一種である。このファイルフォーマットを処理する同名のUNIXコマンドcodice_1も指す。UNIXでは圧縮したtar形式のファイルを"tarball"（ターボール）と呼ぶこともある。"POSIX.1-1988"や"POSIX.1-2001"で規格化され、UNIX系オペレーティングシステムでは標準のフォーマットである。Windows では Windows 10 Build 17063 (Version 1803) 以降からコマンドラインツールが標準搭載されている。Windows 11 Build 23493 からは Windows Explorer が対応している。類似コマンドにafioがある。
機能.
tarはファイルのアーカイブに用いられ、多数のファイルを一つのファイルにまとめることができる。ファイルのユーザ情報とグループ情報、パーミッション、最終更新日時、ディレクトリ構造などを同時にアーカイブすることができる。
圧縮・伸長.
元来tarはアーカイブ、すなわち複数のファイルをまとめることのみで圧縮の機能はない。大半の場合アーカイブと同時にcompress、gzip、bzip2などの圧縮方法を用いて圧縮（いわゆるソリッド圧縮）を行う。これによりファイルの拡張子はそれぞれ 、、 となる。それぞれ略して 、, とされることも多い。特に gzip は古くから良く使われている。
この形式はファイルが一部でも破損した場合、破損箇所に含まれていたファイル以降は取り出すことはできない。この欠点はafioとgzを使うことにより改善できる。
ヘッダー.
tarはファイルの属性などのいわゆるメタデータも一緒に含んでいる。以下のテーブルにUNIX tarフォーマットの一例を示す：
Pre-POSIX.1-1988 (i.e. v7):
コマンドオプション.
以下は GNU Tar および bsdtar で共通で利用可能なオプションである。
圧縮・伸長オプション.
2022年12月現在、GNU Tar 独自の物として --lzip があり、bsdtar 独自の物としては --lrzip や --lz4 がある。
コマンド例.
以下は、圧縮・伸長のコマンド例である。
圧縮。
tar -caf name.tar.gz directory
伸長。
tar -xaf name.tar.gz
テープデバイス.
テープデバイスに記録。
tar -cf /dev/nst0 directory
テープデバイスから読み出す。
tar -xf /dev/nst0
テープ上のファイルのリストを表示。リスト表示したいアーカイブファイルの先頭にテープを移動させた後、以下を実行。
tar -tf /dev/nst0
歴史.
tarコマンドはその名の通り磁気テープの操作が念頭に置かれていた。fオプションを省いた場合デフォルトで磁気テープデバイスを処理する。fオプションの指定によりファイルシステム上の任意の名前のファイルを処理できる。
tarという言葉の由来は「」の童話『』に由来し、それに油塊（タールボール）を引っ掛けたジョーク的用語である。
その歴史の長さゆえにシステム毎の方言やファイルサイズの制限など多くの非互換部分がある為、異なるシステム間のファイル交換を目的とする場合は慎重に利用する必要がある。近年は GNU Tar と bsdtar が一般的ではあるが、その他、様々な tar が存在する。Windows 10 以降や macOS に搭載されているのは bsdtar であり、Linux で一般的なのは GNU Tar である。BusyBox にも独自の tar が含まれている。