| 原作者 | Mark H. Colburn ( USENIX 協会主催) |
|---|---|
| 開発者 | さまざまなオープンソースおよび商用開発者 |
| 初回リリース | 1989年 |
| 書かれた | コルバーンの乗客、ミュラーの乗客、ヘリテージプロジェクトの乗客: C |
| オペレーティング·システム | Unix、Unix ライク、IBM i、Windows |
| プラットフォーム | クロスプラットフォーム |
| タイプ | 指示 |
| ライセンス | Colburn pax:以前の BSD ライセンス Muller pax: BSD-4-Clause Heirloom Project pax: zlib Windows:プロプライエタリソフトウェア |
pax は、1995 年から定義されている、さまざまなオペレーティングシステムで使用できるアーカイブユーティリティです。[1]と の間に生じた互換性のないオプションや、さまざまなバージョンのUnixでのそれらの実装を整理するのではなく、IEEE は、両方のアーカイバの便利なオプションを使用してさまざまなアーカイブ形式をサポートできる新しいアーカイブユーティリティ pax を設計しました。このコマンドは、Unix およびUnix 系オペレーティングシステム、およびWindows 2000までのIBM i [ 2]およびMicrosoft Windows NT [3]で使用できます。
tarcpiopax
2001年にIEEEは、基本的にはtarに拡張属性を追加した新しいpax形式を定義しました。 [4] [5]この形式は、ほとんどのLinuxディストリビューションとFreeBSDのpaxコマンドではサポートされていませんが、 GNUとFreeBSDのtarコマンドではサポートされています。また、AIX、Solaris、HP-UXのpaxコマンドでもこの形式がサポートされています。
「pax」という名前は、 portable archive exchangeの頭字語ですが、ラテン語tarで「平和」を意味する言葉も暗示しています。コマンドの呼び出しと構造は、との平和的な統合を表現していますcpio。
歴史
paxの最初の公開実装は、1989年にMark H. Colburnによって書かれました。Colburnは、TARとCPIOのUsenix/IEEE POSIX代替として、これをcomp.sources.unixに投稿しました。HP -UX、IRIX、SCO UNIXのpaxのマニュアルページでは、paxはColburnによるものとされています。[6]
1990年7月のPOSIX.2ドラフト10では、すでにpaxコマンドがカバーされています。[7]さらに、1991年のPOSIX.2およびIEEE 1003.1bドラフトでは、cpioおよびustarアーカイブ形式を特徴とするpaxコマンドがカバーされています。
paxプログラムの別のバージョンは、1992年から1993年にかけてKeith Mullerによって作成されました。[8]このバージョンは、 4.4BSD(1995年)で初めて登場しました。 [9] Paxコマンドは、1995年にX/Open第4版(Single Unix仕様バージョン1)で登場し、[1] cpioおよびustarアーカイブ形式を特徴としていましたが、これらは1997年のSingle Unix仕様で取り上げられた唯一の2つの形式でもありました。
1997年、サンマイクロシステムズはustar形式に拡張機能を追加する方法を提案しました。この方法は、新しいpaxファイル形式としてPOSIX.1-2001標準に採用されました。paxユーティリティのPOSIX仕様は、この形式を含めるように更新されました。[1]
特徴
モード
pax には、 -r (「読み取り」) オプションと-w (「書き込み」) オプションの組み合わせによって呼び出される 4 つの一般的なモードがあります。
この表はモーダルの動作をまとめたものです。
このモデルは、同様の基本操作セットを持つ cpio に似ています。
例
アーカイブの内容を一覧表示します:
$ pax < アーカイブ.tar
アーカイブの内容を現在のディレクトリに抽出します。
$ pax -r < アーカイブ.tar
現在のディレクトリのアーカイブを作成します。
$ printf '.' | pax -w > archive.tar
$ pax -w . > archive.tar
現在のディレクトリ ツリーを別の場所にコピーします。
$ printf '.' | pax -w > archive.tar
$ pax -rw target_dir .
(対象ディレクトリが事前に存在している必要があります!)
コマンド呼び出し
デフォルトでは、pax はアーカイブおよびリスト操作に標準入力/出力を使用します。これは、-fアーカイブ ファイルを指定する「tar スタイル」オプションで変更できます。pax は、ディレクトリの内容を再帰的に考慮する点で cpio と異なります。この動作を無効にするために、POSIX pax にはこれを無効にするオプションがあります-d。
paxコマンドは、 cpioとtarの機能が混在しています。tarと同様に、pax はディレクトリ エントリを再帰的に処理します。この機能は、 で無効にして cpio スタイルの動作にすることができます。ファイル入出力の処理も混在しています。コマンド ラインでファイル名のリストが指定されると、それらはファイル入力またはリスト (tar のような) のシェル グロブとして扱われます。それ以外の場合、 pax はファイル リストに標準入力を使用するcpioスタイルの動作を行います。最後に、 pax はtar のオプションを使用して、名前付きアーカイブ ファイルの読み取り/書き込みをサポートします。
-d-f FILE
たとえば、現在のディレクトリを cpio 形式でアーカイブしたい場合は、cpio を使用する場合と同じように、 findでpax を使用できます。
$ find . -depth -print | pax -wd > archive.tar
(この構造は、 findのフィルターがないと意味がありません。上記の例と同じになります。)
アーカイブの内容を抽出するコマンドはcpioと同じです。
$ pax -r < アーカイブ.tar
tarこれらのコマンドを-like 構文で呼び出すことも
できます:
$ pax -wf archive.tar . # 書き込み (アーカイブ) $ pax -rf archive.tar # 読み取り (抽出) $ pax -f archive.tar # リスト$ pax -rw . archive_dir # コピー
圧縮
pax のほとんどの実装では、圧縮に-z ( gzip ) および-j ( bzip2 ) スイッチを使用しますが、この機能は POSIX では指定されていません。pax は圧縮されたアーカイブに追加できないことに注意してください。gzip
圧縮されたアーカイブを抽出する例:
$ pax -rzf アーカイブ.tar.gz
tar や cpio と同様に、pax の出力は別の圧縮/解凍プログラムにパイプすることができます。例として、ここではxzが使用されています。
$ pax -w . | xz > archive.tar.xz
xz 圧縮されたアーカイブを入力としてリストします。
$ xzcat アーカイブ.tar.xz | pax
フォーマットのサポート
POSIX.1-2001 では、paxコマンドが少なくとも cpio、ustar、pax のアーカイブ形式をサポートすることが要求されています。
4.4BSD 実装から派生したpaxコマンドのバージョンは、通常、そのバージョンでサポートされている形式を継承し、-xオプションで選択できます。
- cpio – IEEE Std 1003.2 ("POSIX.2") 標準で指定された拡張 cpio 交換形式。
- bcpio – 古いバイナリ cpio 形式。
- sv4cpio – System V リリース 4 の cpio。
- sv4crc – ファイル CRC チェックサムを備えた System V リリース 4 cpio。
- tar – BSD4.3 に見られる古い BSD tar 形式。
- ustar (デフォルト) – IEEE Std 1003.2 ("POSIX.2") 標準で指定された tar 交換形式。
POSIX.1-2001 pax形式は、この BSD 版paxコマンドではサポートされていません。この形式は、ほとんどの Linux ディストリビューション ( paxコマンドはMirCPIO-paxmirabilisのMirBSDブランチに由来) [10] [11] [12]およびFreeBSD [9]ではサポートされていません。この形式は、AIX [13] 、 Solaris [14]、HP-UXのpaxコマンドでサポートされています。さらに、Python tarfile モジュール[15] 、 BSD ライセンスの libarchive [16] [17]、 7-ZIP [18]、GNU tar [19]、FreeBSD tar [20]でもサポートされています。Heirloom Project のpaxコマンドは、2003 年に Gunnar Ritter によって開発され、pax形式だけでなく、多くの追加形式をサポートしています。[21]
複数の巻
pax は複数のボリュームへのアーカイブをサポートします。ボリュームの終わりに達すると、次のメッセージが表示されます。
$ pax -wf /dev/fd0 。
注意! pax アーカイブ ボリュームの変更が必要です。/dev/fd0
はアーカイブ ボリュームの準備ができました: 2
次のストレージ メディアをロードし (必要な場合)、書き込みが有効になっていることを確認します。
続行するには「y」、pax を終了するには「.」、新しいデバイスに切り替えるには「s」と入力します。
ストレージ メディアを変更できない場合は、「s」と入力します。
デバイスの準備ができてオンラインになっていますか? >
複数のメディアからアーカイブを復元する場合、アーカイブの終わりより前にメディアの終わりに達すると、pax は同じ方法で次のメディアを要求します。
標準化、受容、普及
2001 年に IEEE によって標準化されたにもかかわらず、2010 年現在、pax は比較的人気も採用も少ない。[引用が必要]これは、Unix ユーザーからの需要がなかったことが一因であり、POSIX 委員会がより一貫性のあるインターフェイスを望んでいただけだった。また、Pax はかなりおしゃべりで、問題が発生した場合にはユーザーとのやり取りが必要になる。[引用が必要]
Linux Standard Baseのバージョン3.0(2005年7月6日リリース)以降、paxはすべての準拠システムに存在することが義務付けられているが、 [22]これまでのところ、デフォルトでpaxを同梱してインストールしているLinuxディストリビューションはほとんどない。しかし、ほとんどのディストリビューションにはpaxが個別にインストール可能なパッケージとして含まれている。[23] [24] [25]
paxはWindows NTにも存在したが、ファイルアーカイブに限定されていた(テープはサポートされていない)。[3]その後、 Interixサブシステムに移動された。Win32 ACLのアーカイブ や復元はサポートされていない。[26] paxはWindows 2000にも存在した。[27]
インストーラ(macOS)によって処理されるパッケージは、多くの場合、そのコンテンツの大部分をArchive.pax.gzファイルに格納しており、システムのpax(heirloom)ユーティリティを使用して読み取ることができます。[28]
参照
参考文献
- ^ abc The Open Group 基本仕様 発行 6 - POSIX.1-2001 (IEEE Std 1003.1) Copyright © 2001-2004 The IEEE and The Open Group
- ^ IBM . 「IBM System i バージョン 7.2 プログラミング Qshell」(PDF) . IBM . 2020 年 9 月 5 日閲覧。
- ^ ab Eric Pearce (1997). Windows NT in a nutshell: システム管理者のためのデスクトップクイックリファレンス. O'Reilly Media, Inc. p. 271. ISBN 978-1-56592-251-8。
- ^ 「GNU tar: 8.1 圧縮によるスペースの節約」www.gnu.org。2016年3月6日時点のオリジナルよりアーカイブ。2018年4月22日閲覧。
- ^ 「GNU tar: 4.3.2 拡張ファイル属性」www.gnu.org。2019年12月28日時点のオリジナルよりアーカイブ。2021年1月27日閲覧。
- ^ TAR 対 ポータビリティ – PAX と USTAR、invisible-island.net
- ^ IEEE P1003.2 ドラフト 11.2 − 1991 年 9 月 (pdf) - Shell and Utilities、princeton.edu - ドラフト 11 はpaxの変更を示しているので、ドラフト 10 にあったはずです。
- ^ pax、svnweb.freebsd.org
- ^ ab – FreeBSD一般コマンドマニュアル
- ^ 「MirCPIO — paxmirabilis: tar と ar まで!」MirBSD . 2020 年1 月 24 日閲覧。
- ^ 「Launchpad の MirCPIO」。launchpad.net。2018年4 月 22 日閲覧。
- ^ 「バグ #456405 「pax が "pax" 形式のサポートを欠いているため LSB が失敗する」: バグ: MirCPIO」。bugs.launchpad.net。2018年4月 22 日閲覧。
- ^ AIX 7.3 用の pax、ibm.com
- ^ Solaris 11.1 用の pax、docs.oracle.com
- ^ tarファイル、python.org
- ^ libarchive、libarchive.org
- ^ libarchive(3)、freebsd.org
- ^ 7-Zip の歴史、7-zip.org
- ^ tar マニュアル、gnu.org
- ^ tar、freebsd.org
- ^ "pax.1". heirloom.sourceforge.net . 2018年4月22日閲覧。
- ^ LSB 3.0 のリリースノート Archived 2011-07-17 at the Wayback Machineにはpax が追加されたと記されています: LSB 3.0. コマンドとユーティリティには pax が必要ですが、LSB 2.1.0. コマンドとユーティリティには pax は必要ありません
- ^ pax、pkgs.org
- ^ spax、pkgs.org
- ^ heirloom-pax、pkgs.org
- ^ 「Interix におけるバックアップ、Tar、および Pax のシステム管理」。2010 年 8 月 23 日時点のオリジナルよりアーカイブ。
- ^ 仮想 x86、copy.sh
- ^ 「pax.gz パッケージからファイルを抽出する」。cocoabuilder.com。2015 年 2 月 14 日時点のオリジナルよりアーカイブ。2013年8 月 15 日閲覧。
さらに読む
外部リンク
- Pax によるアーカイブ作成 2009-10-04 にWayback MachineでアーカイブONLamp.com のFreeBSD の基礎に関する記事2009-09-17 にWayback Machineでアーカイブ、Dru Lavigne 著 2008-10-10 にWayback Machine (2002-08-22)でアーカイブ
- – シェルおよびユーティリティ リファレンス、The Single UNIX 仕様、バージョン 4、The Open Group
- – FreeBSD一般コマンドマニュアル
- – OpenBSD一般コマンドマニュアル
- pax.1p – Linux マニュアル – POSIX プログラマーズ マニュアル、実際の Linux ではありません
- – Debian一般コマンドマニュアル
- – Solaris 11.4ユーザーコマンドリファレンスマニュアル
- ソースコード
