This article needs additional citations for verification. (April 2012) |
| タール | |
|---|---|
| 原作者 | ベル研究所 |
| 開発者 | さまざまなオープンソースおよび商用開発者 |
| 初回リリース | 1979年1月 (1979-01) |
| 安定リリース | |
| 書かれた | pdtar、star、Plan 9、GNU : C |
| オペレーティング·システム | Unix、Unixライク、Plan 9、Microsoft Windows、IBM i |
| プラットフォーム | クロスプラットフォーム |
| タイプ | 指示 |
| ライセンス | BSD tar: BSD-2-Clause GNU tar: GPL-3.0以降 pdtar:パブリックドメイン Plan 9: MIT star: CDDL-1.0 |
| タール | |
|---|---|
| ファイル名拡張子 |
。タール |
| インターネットメディアの種類 |
アプリケーション/x-tar |
| 統一型識別子(UTI) | 公開.tar アーカイブ |
| 魔法の数字 | u s t a r \0 0 0 バイトオフセット257(POSIXバージョンの場合)
|
| 最新リリース | さまざまな さまざまな |
| フォーマットの種類 | ファイルアーカイバ |
| 標準 | POSIX.1以降、現在はpaxの定義に含まれる[1] |
| オープンフォーマット? | はい |
コンピューターにおいて、tarは複数のコンピュータファイルを単一のアーカイブファイルに結合するシェル コマンド です。元々は磁気テープストレージ用に開発され、ファイルシステムを持たないシーケンシャルI/Oデバイスへのデータの読み書きに使用されていました。tarという名前は、フォーマット記述「tape ar chive」の略称です。ファイルシステムに保存されたtarが読み書きするファイルは、しばしばtarballと呼ばれます。
tarballには、ファイル名、所有権、タイムスタンプ、権限、ディレクトリ構成といったメタデータが含まれます。関連するメタデータを持つ他のファイルを含むファイルとして、tarballはソフトウェアの配布やバックアップに役立ちます。
POSIX ではtarを放棄してpaxを導入しましたが、それでもtar は引き続き広く使用されています。
歴史
[編集]このコマンドは1979年1月にUnixに導入され、tpプログラム(tapも置き換えた)に代わって導入された。[ 7 ]ファイル 構造はPOSIX.1-1988 [ 8 ]、後にPOSIX.1-2001 [ 9 ]で標準化され、ほとんどの現代のファイルアーカイブユーティリティでサポートされている形式となった。 tarコマンドはPOSIX.1-2001で廃止され、代わりにustarファイル形式をサポートするpaxが採用された。また、少なくとも1994年以降はtarは廃止され、paxが採用されることが示唆されていた。とはいえ、今日の多くのオペレーティングシステムには、tarファイル用のツールだけでなく、 xz、gzip、bzip2などのtarファイルの圧縮および解凍ツールも含まれている。
tarコマンドはIBM iオペレーティングシステムに移植されました。 [ 10 ]
BSD-tarは2018年からWindowsに搭載されており、[ 11 ] [ 12 ] Windowsでは他にもサードパーティ製のツールが利用可能です。
根拠
[編集]多くの従来のテープドライブは可変長のデータブロックを読み書きするため、ブロック間にはテープの物理的な動きの開始と停止のための無駄なスペースが大量に残ってしまいます。一部のテープドライブ(およびRAWディスク)は固定長のデータブロックのみをサポートしています。また、ファイルシステムやネットワークなどのメディアに書き込む場合、小さなブロックを多数書き込むよりも、大きなブロックを1つ書き込む方が時間がかかります。そのため、tarコマンドは512Bの ブロックを多数含むレコードにデータを書き込みます。ユーザーは、レコードあたりのブロック数であるブロッキング係数を指定できます。デフォルトは20で、10KiB のレコードが生成されます。[ 13 ]
ファイル形式
[編集]tarファイル形式には、歴史的なものから最新のものまで、複数の形式があります。POSIXでは、ustarとpax の2つのtar形式が規定されています。規定されていませんが、現在も使用されているのがGNU tar形式です。
tar アーカイブは一連のファイル オブジェクトで構成されているため、tarballという一般的な用語で呼ばれています。これは、 tarball がその表面に貼り付けられるあらゆる種類のオブジェクトを収集する方法を指します 。各ファイル オブジェクトには任意のファイル データが含まれており、512 バイトのヘッダーレコードが先行します。ファイル データは、長さが 512 バイトの倍数に切り上げられる点を除き、変更されずに書き込まれます。オリジナルの tar 実装では、パディング バイトの内容は考慮されず、バッファー データは変更されませんでしたが、最近のほとんどの tar 実装では余分なスペースがゼロで埋められます。[ 14 ]アーカイブの終わりは、少なくとも 2 つの連続するゼロで埋められたレコードによって示されます。(tar のレコード サイズの起源は、バージョン 7 Unix ファイル システムで使用されている 512 バイトのディスク セクターのようです。) アーカイブの最後のブロックは、全長までゼロで埋められます。
ヘッダ
[編集]ファイルヘッダーレコードには、ファイルに関するメタデータが含まれています。異なるバイト順序を持つ異なるアーキテクチャ間での移植性を確保するため、ヘッダーレコードの情報はASCIIでエンコードされています。したがって、アーカイブ内のすべてのファイルがASCIIテキストファイルで、ファイル名がASCIIである場合、アーカイブは本質的にASCIIテキストファイル(多くのNUL文字を含む)となります。
オリジナルのUnix tar形式で定義されているフィールドは、以下の表に示されています。リンクインジケータ/ファイルタイプテーブルには、いくつかの現代的な拡張が含まれています。フィールドが使用されていない場合、そのフィールドはNULバイトで埋められます。ヘッダーは257バイトを使用し、その後NULバイトで埋められて512バイトのレコードになります。ヘッダーには、ファイル識別のための「マジックナンバー」はありません。
POSIX.1-1988以前(つまりv7)のtarヘッダー:
| フィールドオフセット | フィールドサイズ | 分野 |
|---|---|---|
| 0 | 100 | ファイルのパスと名前 |
| 100 | 8 | ファイルモード(8進数) |
| 108 | 8 | 所有者の数値ユーザーID(8進数) |
| 116 | 8 | グループの数値ユーザーID(8進数) |
| 124 | 12 | ファイルサイズ(バイト単位、8進数) |
| 136 | 12 | 数値 Unix 時間形式 (8 進数) での最終変更時刻 |
| 148 | 8 | ヘッダーレコードのチェックサム |
| 156 | 1 | リンクインジケーター(ファイルタイプ) |
| 157 | 100 | リンクされたファイルの名前 |
POSIX.1-1988 以前のリンク インジケータフィールドには、次の値を指定できます。
| 価値 | 意味 |
|---|---|
| '0' または ( ASCII NUL ) | 通常のファイル |
| '1' | ハードリンク |
| 「2」 | シンボリックリンク |
POSIX.1-1988 以前の一部の tar 実装では、名前の 末尾にスラッシュ(/)を付けてディレクトリを示していました。
数値は、先頭にゼロを付けるASCII数字を用いた8進数としてエンコードされます。コンピュータのレジスタサイズとアドレス幅はほぼ常に2の累乗であり、バイトはオクテットに標準化されているため、4ビットの16進表記が一般的に好まれる現代では、この選択は直感に反するように思えるかもしれません。しかし、Unixは元々 、18ビットCPUと6ビット文字コードを使用するPDP-7用に開発されたため、3ビットの8進表記の方がより望ましいのです。
歴史的な理由から、末尾にNUL文字またはスペース文字も使用する必要があります。そのため、ファイルサイズを格納するために12バイトが予約されているにもかかわらず、格納できる8進数は11桁のみです。そのため、アーカイブファイルの最大ファイルサイズは8ギガバイトになります。この制限を克服するために、starは2001年に数値フィールドの左端バイトの上位ビットを設定することで示される256進コーディングを導入しました。[要出典] GNU-tarとBSD-tarもこのアイデアを採用しました。さらに、1988年の最初のPOSIX標準以前のバージョンのtarでは、値をゼロではなくスペースで埋めていました。
チェックサムは、ヘッダーレコードの符号なしバイト値の合計と、8つのチェックサムバイトをASCIIスペース(10進値32)と見なして計算されます。チェックサムは、先頭にゼロ、NUL、そしてスペースが続く6桁の8進数として保存されます。多くの実装では、この形式に準拠していません。また、過去のtar実装の中には、バイトを符号付きとして扱っていたものもありました。実装では通常、チェックサムを両方向で計算し、符号付きまたは符号なしの合計が、含まれているチェックサムと一致する場合、それを正常とみなします。
Unixファイルシステムは、同一ファイルへの複数のリンク(名前)をサポートしています。tarアーカイブ内に複数のファイルが存在する場合、最初のファイルのみが通常のファイルとしてアーカイブされ、残りのファイルはハードリンクとしてアーカイブされ、「リンクされたファイルの名前」フィールドに最初のファイルの名前が設定されます。抽出時に、このようなハードリンクはファイルシステム内に再作成されます。
UStar形式
[編集]最近のtarプログラムのほとんどは、1988年のPOSIX IEEE P1003.1標準で導入されたUStar(Unix標準TAR [ 7 ] [ 15 ])形式でアーカイブを読み書きします。この形式では追加のヘッダーフィールドが導入されました。古いtarプログラムはこの追加情報を無視し(部分的に名前が付けられたファイルを抽出する可能性があります)、新しいプログラムは「ustar」文字列の有無を検査して、新しい形式が使用されているかどうかを判断します。
UStar形式では、より長いファイル名を許容し、各ファイルに関する追加情報を保存できます。ファイル名の最大文字数は255文字ですが、パスの先頭に付く「ファイル名プレフィックス」とファイル名自体に分割されるため、実際にはそれよりはるかに小さくなる場合があります。[ 16 ]
| フィールドオフセット | フィールドサイズ | 分野 |
|---|---|---|
| 0 | 156 | (複数のフィールド、旧形式と同じ) |
| 156 | 1 | タイプフラグ |
| 157 | 100 | (旧形式と同じフィールド) |
| 257 | 6 | UStar インジケーター、「ustar」、次に NUL |
| 263 | 2 | UStarバージョン、「00」 |
| 265 | 32 | 所有者のユーザー名 |
| 297 | 32 | 所有者グループ名 |
| 329 | 8 | デバイスのメジャー番号 |
| 337 | 8 | デバイスのマイナー番号 |
| 345 | 155 | ファイル名のプレフィックス |
タイプフラグフィールドには次の値を指定できます。
| 価値 | 意味 |
|---|---|
| '0' または ( ASCII NUL ) | 通常のファイル |
| '1' | ハードリンク |
| 「2」 | シンボリックリンク |
| 「3」 | キャラクタースペシャル |
| 「4」 | ブロックスペシャル |
| 「5」 | ディレクトリ |
| 「6」 | 先入れ先出し法 |
| 「7」 | 連続ファイル |
| 「グ」 | メタデータ付きグローバル拡張ヘッダー (POSIX.1-2001) |
| 「×」 | アーカイブ内の次のファイルのメタデータを含む拡張ヘッダー (POSIX.1-2001) |
| 「A」~「Z」 | ベンダー固有の拡張 (POSIX.1-1988) |
| その他の値 | 将来の標準化のために予約済み |
リンク フラグ値 'A' ~ 'Z' を使用する POSIX.1-1988 ベンダー固有の拡張機能は、ベンダーによって部分的に意味が異なるため、時代遅れとみなされ、ベンダー タグも含まれる POSIX.1-2001 拡張機能に置き換えられました。
タイプ「7」(連続ファイル)はPOSIX標準では正式に予約語として指定されていますが、ディスク上で連続して割り当てられるべきファイルを示すためのものでした。このようなファイルを明示的に作成できるオペレーティングシステムは少なく、そのためほとんどのTARプログラムはこれをサポートしておらず、タイプ7のファイルをタイプ0(通常ファイル)として扱います。例外として、MASSCOMP RTU(Real Time Unix)オペレーティングシステム上で動作するGNU tarの旧バージョンでは、open()関数に連続ファイルを要求するO_CTGフラグを指定できましたが、GNU tarバージョン1.24以降ではこのサポートは削除されました。
POSIX.1-2001/pax
[編集]1997年、Sunはtar形式に拡張機能を追加する方法を提案しました。この方法は後にPOSIX.1-2001標準に採用されました。この形式は拡張tar形式またはpax形式と呼ばれます。新しいtar形式では、ベンダータグ付きのあらゆるベンダー固有の拡張機能を追加できます。POSIX標準では、以下のタグが定義されています。
- atime、mtime : 任意の解像度でのファイルのすべてのタイムスタンプ(ほとんどの実装ではナノ秒単位を使用します)
- path : 長さと文字セットコーディングに制限のないパス名
- linkpath : 長さと文字セットコーディングに制限のないシンボリックリンクターゲット名
- uname、gname : 長さと文字セットコーディングに制限のないユーザー名とグループ名
- サイズ: 無制限のサイズのファイル (従来の tar 形式は 8 GB)
- uid、gid : サイズ制限のないユーザーIDとグループID(従来のtar形式では最大IDが2097151に制限されています)
- パス名とユーザー名/グループ名の文字セット定義 ( UTF-8 )
2001年、Starプログラムは新しいフォーマットをサポートする最初のtarとなりました。[引用が必要] 2004年にはGNU tarが新しいフォーマットをサポートしましたが、[ 17 ] tarプログラムのデフォルトの出力としてはまだ書き込まれていません。[ 18 ]
paxフォーマットは、UStarフォーマットを読み込めるすべての実装がpaxフォーマットも読み込めるように設計されています。唯一の例外は、長いファイル名などの拡張機能を利用するファイルです。互換性のため、これらのファイルはtarファイル内で特殊ファイルxまたはgタイプファイルとして、通常はPaxHeaders.XXXXディレクトリの下にエンコードされます。[ 19 ] : exthdr.name paxをサポートする実装はこの情報を利用し、7-Zipのようなサポートしない実装は追加ファイルとして処理します。[ 20 ]
アーカイブユーティリティの機能
[編集]アーカイブの作成と解凍以外にも、様々なアーカイブユーティリティの機能は多岐にわたります。例えば、実装によっては、圧縮されたTARアーカイブの解凍形式を自動検出してユーザーが指定する必要がないようにしたり、指定した日付以降に変更されたファイルのみを追加できるようにしたりといった機能があります。[ 21 ] [ 22 ]
用途
[編集]コマンド構文
[編集]tar [-options] <tar アーカイブの名前> [アーカイブに追加するファイルまたはディレクトリ]
基本オプション:
-c, --create— 新しいアーカイブを作成します。-a, --auto-compress— アーカイブのファイル名拡張子に基づいて自動的に決定される圧縮プログラムでアーカイブをさらに圧縮します。アーカイブ名が で終わる場合はgzip、 の場合はxz(Zstandardなど*.tar.gz)を使用します。*.tar.xz*.tar.zst-r, --append— アーカイブの末尾にファイルを追加します。-x, --extract, --get— アーカイブからファイルを抽出します。-f, --file— アーカイブの名前を指定します。-t, --list— アーカイブ内のファイルとフォルダーのリストを表示します。-v, --verbose— 処理されたファイルのリストを表示します。
基本的な使い方
[編集]archive.tarファイルREADME.txtとディレクトリからアーカイブファイルを作成しますsrc:
$ tar -cvf archive.tar README.txt src
archive.tar現在のディレクトリに
内容を抽出します。
$ tar -xvf アーカイブ.tar
archive.tar.gzファイルREADME.txtとディレクトリからアーカイブ ファイルを作成し、 gzipsrcで圧縮します 。
$ tar -cavf archive.tar.gz README.txt src
archive.tar.gz現在のディレクトリに
内容を抽出します。
$ tar -xvf アーカイブ.tar.gz
ターパイプ
[編集]tarpipeとは、アーカイブを標準出力に書き出し、それを別のtarプロセスの標準入力にパイプして別のディレクトリで展開する方法です。このプロセスは、すべての特殊ファイルを含むソースディレクトリツリー全体をコピーします。例えば、次のようになります。
$ tar cf - srcdir | tar x -C destdir
ソフトウェア配布
[編集]tar形式は、オープンソース ソフトウェアの配布において広く利用され続けています。*NIXディストリビューションでは、様々なソースパッケージおよびバイナリパッケージの配布メカニズムでtar形式が使用されており、ほとんどのソフトウェアソースコードは圧縮されたtarアーカイブで提供されています。[要出典]
制限事項
[編集]オリジナルのtarフォーマットはUnixの初期に作成され、現在では広く使用されているにもかかわらず、その設計機能の多くは時代遅れだと考えられています。[ 23 ]
tar の欠点を解決するために他の形式も作成されました。
ファイル名
[編集]フィールド サイズのため、元の TAR 形式では 100 文字を超えるファイル パスと名前を保存できませんでした。
この問題を克服し、既存のTARユーティリティによる可読性を維持するために、GNU tarは、100文字を超えるファイルパスと名前を、@LongLinkこの機能を認識しないTARユーティリティによって通常のファイルとして表示されるエントリに格納します。[ 24 ]同様に、PAXフォーマットはPaxHeadersエントリを使用します。[ 25 ]
属性
[編集]古いtar実装の多くは、拡張属性(xattr)やアクセス制御リスト(ACL)の記録や復元を行っていません。2001年、StarはPOSIX.1-2001 pax用の独自のタグを通じて、ACLと拡張属性のサポートを導入しました。bsdtarはACLをサポートするためにstar拡張を使用しています。 [ 26 ] GNU tarの最近のバージョンは、star拡張を再実装することでLinux拡張属性をサポートしています。[ 27 ] BSD tarのファイルタイプマニュアルtar(5)では、いくつかの拡張機能について解説されています。[ 26 ]
ターボム
[編集]ハッカーのスラングで「ターボム」とは、多数のアイテムを含むtarballのことであり、解凍時に、tarballが展開出力用に作成したディレクトリではなく、カレントディレクトリまたは他の既存のディレクトリに内容が書き込まれる。[ 28 ]これは、ディレクトリ内の他の内容に混在する多数のファイルを特定して削除しなければならないため、ユーザーにとっては不便である。このような行為は、アーカイブ作成者のエチケット違反とみなされる。
関連する問題として、 tarファイルを作成する際に絶対パスや親ディレクトリ参照を使用することが挙げられます。このようなアーカイブから抽出されたファイルは、作業ディレクトリ外の通常とは異なる場所に作成されることが多く、tarbombのように既存のファイルを上書きする可能性があります。しかし、FreeBSDやGNU tarの最新バージョンでは、フラグ-Pまたはオプションで明示的に許可されない限り、デフォルトでは絶対パスや親ディレクトリ参照を作成または抽出しません。多くのオペレーティングシステムで利用可能で、 Mac OS X--absolute-names v10.6のデフォルトのtar実装であるbsdtarプログラムも、親ディレクトリ参照やシンボリックリンクをたどりません。[ 29 ] [検証失敗]
ユーザーが利用できる tar が非常に古く、そのようなセキュリティ対策が施されていない場合、まず コマンド を使用して tar ファイルを調べtar tf archive.tar、その内容を一覧表示し、後で問題のあるファイルを除外することで、これらの問題を軽減できます。これらのコマンドはファイルを抽出するのではなく、アーカイブ内のすべてのファイルの名前を表示します。問題のあるファイルがある場合、ユーザーは新しい空のディレクトリを作成し、そこにアーカイブを抽出できます。または、tar ファイルを完全に回避することもできます。ほとんどのグラフィカル ツールは、アーカイブを抽出する前にその内容を表示できます。Vimはtar アーカイブを開いて内容を表示できます。GNU Emacsも tar アーカイブを開いてその内容をdiredバッファに表示できます。
ランダムアクセス
[編集]tar形式は、テープバックアップデバイスへのストリーミング用に、ファイルとそのプロパティを一元的に管理するインデックスや目次を持たないように設計されています。代わりに、各ファイルのメタデータ(名前、サイズ、タイムスタンプなど)は、各ファイルの先頭のヘッダーに格納されます。ファイルのリスト表示や抽出を行うには、アーカイブを順次読み取る必要があります。大規模なtarアーカイブの場合、これはパフォーマンスの低下を招き、個々のファイルへのランダムアクセスが頻繁に必要となる状況にはtarアーカイブは適していません。
結果として、この設計により、TARアーカイブは、デジタルファイルと物理テープ両方の形式で、欠落部分による損傷に対して耐性を持つようになります。[引用が必要]両端に欠落部分がある切り捨てられたTARファイルでも、欠落していない最初のTARヘッダーから開始することで、ファイルパス、ファイル名、メタデータなど、欠落していない部分を復元できます。[ 30 ]
シーク可能な(つまり効率的なランダム読み取りが可能な)媒体に保存された整形式のtarファイルであれば、tarプログラムはファイルヘッダーの「サイズ」フィールドに基づいてファイル読み取りをスキップすることで、比較的高速に(ファイル数に対して線形時間で)ファイルを検索できます。これは-nGNU tarのオプションの基盤となっています。tarファイル全体が圧縮されている場合、圧縮形式は通常シーク不可能であるため、この最適化は実行されません。[ 31 ]シーク可能性を維持するために、tarファイルは各ファイルの末尾のゼロブロックを削除して適切に連結する必要があります。[ 32 ]
重複
[編集]tar形式のもう一つの問題は、アーカイブ内の複数のファイル(場合によっては異なるファイル)に同一のパスとファイル名が付けられることです。このようなアーカイブを解凍すると、通常、後者のバージョンのファイルが前者のファイルを上書きします。
これにより、明示的ではない (わかりにくい) tarbomb が作成されます。技術的には、絶対パスを持つファイルや親ディレクトリを参照するファイルは含まれませんが、現在のディレクトリ外のファイルが上書きされます (たとえば、アーカイブに同じパスとファイル名を持つ 2 つのファイルが含まれており、1 つ目は現在のディレクトリ外の場所へのシンボリック リンクであり、2 つ目は通常のファイルである場合、一部の tar 実装でこのようなアーカイブを抽出すると、シンボリック リンクによって示される場所への書き込みが発生する可能性があります)。
主な実装
[編集]歴史的に、多くのシステムがtarを実装しており、多くの一般的なファイルアーカイバは少なくとも部分的にtarをサポートしています(多くの場合、以下のいずれかの実装を使用しています)。tarの歴史は、いわゆる「tar戦争」として知られる非互換性の歴史です。ほとんどのtar実装は、cpioとpax(後者は実際にはPOSIX 2001拡張 を持つtar形式です)の読み込みと作成も可能です。
主要な実装(起源順):
- Solaris tar は、オリジナルの Unix V7 tar に基づいており、Solaris オペレーティングシステムのデフォルトとして提供されています。
- GNU tarは、ほとんどのLinuxディストリビューションのデフォルトです。これは、1987年に開始されたパブリックドメイン実装pdtarに基づいています。最近のバージョンでは、ustar、pax、GNU、v7形式など、さまざまな形式を使用できます。
- FreeBSD tar( BSD tarとも呼ばれる)は、Mac OS Xを含むほとんどのBerkeley Software Distributionベースのオペレーティングシステムでデフォルトのtarとなっています。コア機能はlibarchiveとして提供されており、他のアプリケーションに組み込むことができます。この実装はファイル形式を自動的に検出し、tar、pax、cpio、zip、rar、ar、xar、rpm、ISO 9660 CD-ROMイメージから抽出できます。また、cpioと同等の機能を持つコマンドラインインターフェースも備えています。
- Schily tar(通称star 、 / ˈɛ sˌtɑːr /、ESS -tar)[ 33 ]は、その拡張機能のいくつかが非常に人気を博したことから、歴史的に重要なものです。1997年4月に初めて公開されましたが[ 34 ] 、開発者は1982年に開発を開始したと述べています。[ 35 ]
- Python tarfileモジュールは、ustar、pax、gnuを含む複数のtar形式をサポートしています。V7形式とSunOS tar拡張形式は読み込めますが、作成はできません。paxはアーカイブ作成のデフォルト形式です。[ 36 ] 2003年から利用可能です。[ 37 ]
さらに、ほとんどのpaxおよびcpio実装では、複数の種類の tar ファイルを読み取って作成できます。
圧縮ファイルの接尾辞
[編集]tarアーカイブ ファイルは通常、ファイル サフィックス.tarを持ちます(例: somefile.tar )。
tar アーカイブファイルには、その中に含まれるファイルの非圧縮バイトストリームが含まれています。アーカイブ圧縮には、gzip、bzip2、xz、lzip、lzma、zstd、compressなど、tar アーカイブ全体を圧縮する様々な圧縮プログラムが利用可能です。通常、圧縮されたアーカイブには、形式固有の圧縮接尾辞がアーカイブファイル名に付加されたファイル名が付けられます。例えば、 tar アーカイブarchive.tarは、 gzip で圧縮されると archive.tar.gzという名前になります。
BSD 版やGNU版の tarなどの人気の tar プログラムは、作成時または展開時にアーカイブ ファイルを圧縮または展開するためのコマンドライン オプション Z (圧縮)、z (gzip)、j (bzip2) をサポートしています。比較的最近追加されたオプションには、 --lzma ( LZMA )、--lzop ( lzop )、--xzまたはJ ( xz )、--lzip (lzip)、--zstd があります。[ 38 ]これらの形式の展開は、サポートされているファイル名の拡張子が使用されている場合は自動的に処理され、圧縮は、オプション--auto-compress (短縮形-a ) が適切なバージョンの GNU tar に渡される場合、同じファイル名の拡張子を使用して自動的に処理されます 。 [ 16 ] BSD tar は、ファイル名ではなくその中のデータを使用して、さらに広範囲の圧縮プログラム ( lrzip、lz4 ) を検出します。 [ 39 ]
MS-DOS 8.3のファイル名制限により、圧縮された tar アーカイブの命名規則が追加されました。しかし、FAT が長いファイル名をサポートしたため、この慣習は廃れました。

| コンプレッサー | 長さ | 短い |
|---|---|---|
| bzip2 | .tar.bz2 | .tb2、.tbz、.tbz2、.tz2 |
| gzip | .tar.gz | .taz、.tgz |
| ジップ | .tar.lz | |
| イズマ | .tar.lzma | .tlz |
| lzop | .tar.lzo | |
| xz | .tar.xz | .txz |
| 圧縮する | .tar.Z | .tZ、.taZ |
| zstd | .tar.zst | .tzst |
参照
[編集]参考文献
[編集]- ^ 「libarchive - tar、cpio、zip、ISO、およびその他のアーカイブ形式の読み取りと書き込み用の C ライブラリとコマンドラインツール @ GitHub」。www.libarchive.org。
- ^ Sergey Poznyakoff (2023年7月18日). “tar-1.35 リリース [安定版]” . 2023年7月26日閲覧。
- ^ John Gilmore (1986年12月10日). 「v07i088: パブリックドメインTARプログラム」 .ニュースグループ: mod.sources . 2022年2月7日時点のオリジナルよりアーカイブ。 2022年2月7日閲覧。
- ^ “posixtar” . 2022年6月27日時点のオリジナルよりアーカイブ。2022年2月7日閲覧。
- ^ “star” . 2023年11月12日時点のオリジナルよりアーカイブ。2023年11月12日閲覧。
- ^ Gilmore, John; Fenlason, Jay (2019年2月4日). 「Basic Tar Format」 . gnu.org . その他.フリーソフトウェア財団. 2019年4月17日閲覧。
- ^ a b 「tar(5) マニュアルページ」 . FreeBSD.org . FreeBSD. 2004年5月20日. 2017年5月2日閲覧。
- ^ IEEE Std 1003.1-1988、IEEE 情報技術標準 - ポータブルオペレーティングシステムインタフェース (POSIX)
- ^ IEEE Std 1003.1-2001、 IEEE 情報技術標準 - ポータブルオペレーティングシステムインタフェース (POSIX)
- ^ IBM . 「IBM System i バージョン 7.2 プログラミング Qshell」(PDF) . IBM . 2020年9月5日閲覧。
- ^ 「PC向けWindows 10 Insider Preview Build 17063を発表」 Windows Experience Blog 2017年12月19日2018年7月2日閲覧。
- ^ 「Tar と Curl が Windows に登場!」 2019 年 3 月 22 日。
- ^ 「ブロッキング」 . ftp.gnu.org . 2020年8月26日閲覧。
- ^ Hoo, James. 「Windows/Mac/Linuxでフリーウェアを使ってTARファイルを開く/解凍する」 e7z Org . 2015年2月6日時点のオリジナルよりアーカイブ。 2019年9月3日閲覧。
- ^ Kientzle , Tim (1995).インターネットファイルフォーマット. Coriolis Groups Books. p. 196. ISBN 978-1-883577-56-8. 2022年11月10日閲覧。
- ^ a b c 「GNU tar 1.32: 8.1 圧縮によるスペースの節約」 . GNU . 2019年2月23日. 2019年8月11日閲覧。
- ^ NEWS、git.savannah.gnu.org - 「POSIX.1-2001 および ustar アーカイブ形式のサポートが追加されました。」を検索してください。
- ^ 「GNU tar 1.34: 8. アーカイブ形式の制御」 . GNU . 2022年7月11日閲覧。
- ^ – シェルおよびユーティリティリファレンス、The Single UNIX 仕様、バージョン5、The Open Group
- ^ 「#2116 paxヘッダー付きのtarが解析されない」 7 -Zip / バグ | SourceForge .
- ^ GNU tar 1.35: 6.8 新規ファイルのみの操作
- ^ BSD tarとGNU tarおよびstarの違い | LinuxのBaeldung
- ^ 「duplicity: 新しいファイル形式」 . duplicity.nongnu.org .
- ^ gnu_tar/src/create.c at master · gitGNU/gnu_tar · GitHub、行 546
- ^ src/bin/pax/tar.c at 8df76133309eacd4092b091ee0504adb842322a5 · openbsd/src · GitHub、行番号 1066
- ^ a b – FreeBSDファイルフォーマットマニュアル
- ^ 「拡張属性:良い点、良くない点、悪い点」 . Les bons comptes . 2014年7月15日. 2014年12月14日時点のオリジナルよりアーカイブ。 2019年9月3日閲覧。
拡張属性は、ファイルのメタデータ(例:author="John Smith", subject="country landscape")を保存するのに非常に役立ちます。多くの場合、このデータをファイルの内部プロパティに保存したくない、または保存できない場合に有効です。
- ^ 「Tarbombの定義」 . Linux Info Project . 2024年12月12日閲覧。
- ^ "bsdtar(1)" . man.freebsd.org .
- ^ 先頭の100KBが欠落したTARを作成しています: 。次のヘッダーは16進エディタ
tail --bytes=+100000 "intact archive.tar" >>"missing beginning.tar"を使用して見つけることができます。 を使用して復元します。スペースのないファイル名には引用符は必要ありません。dd if="missing beginning.tar" of=recovered.tar ibs=[bytes until next header which starts with file path and name] skip=1 - ^ BillThor (2017年7月28日). 「tarアーカイブをシーク可能にするにはどうすればいいか?」 Super User . 2023年12月15日閲覧。
- ^ 「GNU tar 1.35: 4.2.4 --concatenateによるアーカイブの結合」。www.gnu.org 。
- ^ Schilling, Jörg. 「Star は UNIX 用の非常に高速で Posix 1003.1 準拠の tar アーカイバです」 。 2023年7月9日時点のオリジナルよりアーカイブ。2023年9月2日閲覧。
- ^ Thomas E. Dickey (2015年1月4日). 「TARとポータビリティ:Schily tar」 . 2021年10月23日閲覧。
- ^ Jörg Schilling (2021年9月4日). “star - unique standard tape archiver” . 2021年10月23日時点のオリジナルよりアーカイブ。 2021年10月23日閲覧。
- ^ tarfileモジュール、python.org
- ^ tarfile.py、github.com
- ^ Poznyakoff, Sergey (2019年1月2日). 「tar-1.31 リリース [安定版]」GNU メーリングリスト. 2019年8月6日閲覧。
- ^ – FreeBSD一般コマンドマニュアル
外部リンク
[編集]- X/Open CAE仕様 コマンドおよびユーティリティ 第4版 第2版(pdf)、1994年、opengroup.org – tarは撤回されたことを示しています
- tar in The Single UNIX Specification, Version 2, 1997, opengroup.org – アプリケーションはpaxに移行すべきであることを示す
- C.4 ユーティリティin The Open Group Base Specifications Issue 6, 2004 Edition, opengroup.org – tar が削除されていることを示します
- – シェルおよびユーティリティリファレンス、The Single UNIX Specification、バージョン5、The Open Group – ustarおよびpaxファイル形式を規定
- – バージョン7 Unixプログラマーズマニュアル
- – GNUのマニュアル
- – Plan 9プログラマーズマニュアル 第1巻
- – Solaris 11.4ユーザーコマンドリファレンスマニュアル
- – FreeBSD一般コマンドマニュアル
- – OpenBSD一般コマンドマニュアル
- – Linuxユーザーマニュアル– Manned.org のユーザーコマンド
- – FreeBSDファイルフォーマットマニュアル
- TAR - Windows コマンド - SS64.com