Pax (příkaz) - pax (command) - Wikipedia
![]() The Windows NT pax příkaz | |
Vývojáři | Rozličný open-source a komerční vývojáři |
---|---|
První vydání | 1995 |
Operační systém | Unix a Unixový, IBM i, Microsoft Windows |
Plošina | Cross-platform |
Typ | Příkaz |
pax je archivační nástroj vytvořil POSIX[rozporuplný ], definovaný od roku 1995.[1] Spíše než vyřešit nekompatibilní možnosti, které se mezi nimi vkradly dehet
a cpio
, spolu s jejich implementacemi napříč různými verzemi Unix, IEEE navrhl nový nástroj pro archivaci, který by mohl podporovat různé formáty archivu s užitečnými možnostmi z obou archivů. The pax
příkaz je k dispozici pro Unix a Windows Unixový operační systémy a dál IBM i,[2] Microsoft Windows NT,[3] a Windows 2000.
IEEE v roce 2001 definovala nový pax formát, který je v zásadě dehet s dalšími rozšířenými atributy.[4]
Název „pax“ je zkratka pro přenosná výměna archivu. Vyvolání příkazu a struktura je poněkud sjednocením obou dehet
a cpio
.
Dějiny
Verze programu pax byla vytvořena Keithem Mullerem v letech 1992–1993. Verze se poprvé objevila v 4,4BSD (1995).[5] Pax byl přijat do X / Otevřít číslo 4 (Single Unix Specification verze 1) v roce 1995.[1] Tyto verze pax definovaly rozhraní příkazového řádku pouze jako hybrid tar / cpio, ale formát souboru pax ještě nebyl definován. (Práce na definování Pax pravděpodobně předchází Mullerovu práci; zdá se, že je to v počátcích návrhů POSIX.2 a IEEE 1003.1b kolem roku 1991.)
V roce 1997 Sun Microsystems navrhl způsob přidávání rozšíření do formátu ustar. Tato metoda byla později přijata pro standard POSIX.1-2001 jako nová pax formát souboru. Specifikace POSIX pro pax nástroj byl aktualizován tak, aby zahrnoval tento formát.[1]
Funkce
Režimy
pax má čtyři obecné režimy, které jsou vyvolávány kombinací -r ("číst a -w („write“) možnosti.
Tato tabulka shrnuje modální chování:
Volba | Režim | Popis |
---|---|---|
(žádný) | "seznam" | zobrazuje obsah archivu, nic nemění ani extrahuje. |
-r | "číst" | čte a extrahuje obsah archivu |
-w | "psát si" | vytváří archivy nebo připojuje soubory k archivu |
-rw | "kopírovat" | čte a kopíruje soubory a adresářový strom do zadaného adresáře |
Tento model je podobný cpio, které má podobnou sadu základních operací.
Příklady
Seznam obsahu archivu:
$ pax
Extrahujte obsah archivu do aktuálního adresáře:
$ pax -r
Vytvořte archiv aktuálního adresáře:
$ printf '.' | pax -w> archive.tar$ pax -w. > archive.tar
Zkopírujte aktuální strom adresářů do jiného umístění:
$ printf '.' | pax -w> archive.tar$ pax -rw target_dir.
(Cílový adresář musí existují předem!)
Vyvolání příkazu
Ve výchozím nastavení používá standardní vstup / výstup pro operace archivace a výpisu, ale toto lze přepsat volbou „tar-style“ -F
který určuje archivní soubor. Pax se liší od cpio rekurzivním zvážením obsahu adresáře; k deaktivaci tohoto chování má POSIX pax možnost -d
deaktivovat.
The pax příkaz je mišmaš z cpio a dehet funkce. Jako dehet, pax zpracovává položky adresáře rekurzivně, což je funkce, kterou lze deaktivovat -d
pro chování ve stylu cpio. Zpracování vstupů / výstupů souborů je také směsicí: je-li na příkazovém řádku zadán seznam názvů souborů, jsou brány jako skořápkové globusy pro vstup do souboru nebo výpis (podobný tar); v opačném případě pax bere cpiochování ve stylu používání standardního vstupu pro seznam souborů. Konečně, pax podporuje čtení / zápis do pojmenovaného archivního souboru pomocí tar -f SOUBOR
volba.
Například pokud si přejete archivaci aktuálního adresáře ve stylu cpio, pax lze použít s nalézt stejně jako jeden pomocí cpio:
$ najít. -hloubka -tisk | pax -wd> archive.tar
(Tento konstrukt je zbytečný bez filtrů pro nalézt, protože se stane identickým s výše uvedeným příkladem.)
Příkaz pro extrahování obsahu archivu je stejný jako cpio:
$ pax -r
Tyto příkazy je možné vyvolat v a dehet
-jako syntaxe:
$ pax -wf archive.tar. # write (archive)$ pax -rf archive.tar # čtení (výpis)$ pax -f archive.tar # seznam$ pax -rw. archive_dir # kopírovat
Komprese
Většina implementací pax používá -z (gzip ) a -j (bzip2 ) spínače pro kompresi; tato funkce však není POSIX specifikována. Je důležité si uvědomit, že pax se nemůže připojit ke komprimovaným archivům.
Příklad extrahování archivu gzip:
$ pax -rzf archive.tar.gz
Stejně jako v tar a cpio lze výstup pax přesměrovat do jiného programu kompresoru / dekompresoru. Jako příklad xz zde se používá:
$ pax -w. | xz> archive.tar.xz
a výpis xz komprimovaného archivu jako vstupu:
$ xzcat archive.tar.xz | pax
Podpora formátu
Téměř všechny existující verze pax vychází z původní implementace 4.4BSD. Většina z nich dědí formáty podporované touto verzí, které lze vybrat pomocí -X volba:
- cpio - Rozšířený formát pro výměnu cpio specifikovaný ve standardu IEEE Std 1003.2 („POSIX.2“).
- bcpio - starý binární formát cpio.
- sv4cpio - vydání System V verze 4 cpio.
- sv4crc - vydání System V verze 4 cpio s kontrolními součty file crc.
- dehet - Starý formát tar BSD, jak je uveden v BSD4.3.
- ustar (výchozí) - Formát pro výměnu tar specifikovaný ve standardu IEEE Std 1003.2 („POSIX.2“).
Zejména podpora pro rok 2001 pax tento starší pax formát nepodporuje. To je případ většiny distribucí Linuxu (která používá MirBSD pobočka pf MirCPIO-paxmirabilis)[6][7][8] a dál FreeBSD.[5]
The Dědictví Project pax má podporu pro pax podpora a mnoho dalších formátů.[9]
Více svazků
pax podporuje archivaci na více svazcích. Po dosažení konce svazku se zobrazí následující zpráva:
$ pax -wf / dev / fd0.POZORNOST! je vyžadována změna svazku archivu pax./ dev / fd0 připraveno pro svazek archivu: 2Vložte DALŠÍ MÉDIA PRO UCHOVÁVÁNÍ (je-li požadováno) a ujistěte se, že je WRITE ENABLED.Pokračujte zadáním „y“, „.“ ukončit pax nebo „s“ přepnout na nové zařízení.Pokud nemůžete změnit úložné médium, zadejte „s“Je zařízení připraveno a online? >
Když obnovujete archiv z více médií, pax požádá o další médium stejným způsobem, když je konec média dosažen před koncem archivu.
Standardizace, příjem a popularita
Navzdory standardizaci v roce 2001 IEEE se od roku 2010 společnost pax těší relativně malé popularitě nebo adopci.[Citace je zapotřebí ] Je to z části proto, že to uživatelé Unixu nepotřebovali; byl to jen výbor POSIX, který chce mít konzistentnější rozhraní. Pax je také docela chatrný a očekává, že interakce uživatele nastanou, když se něco pokazí.[Citace je zapotřebí ]
Společnost pax musí být přítomna ve všech shodných systémech do Linux Standard Base od verze 3.0 (vydané 6. července 2005),[10] ale zatím málo Linuxové distribuce odeslat a nainstalovat ve výchozím nastavení. Většina distribucí však obsahuje pax jako samostatně instalovatelný balíček.
pax byl také přítomen v Windows NT, kde je omezen na archivy souborů (pásky nejsou podporovány).[3] Později byl přesunut do Interix subsystém. Nepodporuje archivaci ani obnovení Win32 Seznamy ACL.[11]
Balíčky zpracované Instalační program (OS X) často přenášejí většinu svého obsahu do souboru Archive.pax.gz, který lze číst pomocí nástroje pax (dědictví) systému.[12]
Viz také
Reference
- ^ A b C The Open Group Base Specification Issue 6 - POSIX.1-2001 (IEEE Std 1003.1) Copyright © 2001-2004 IEEE a Otevřená skupina
- ^ IBM. „IBM System i verze 7.2 Programování Qshell“ (PDF). Citováno 2020-09-05.
- ^ A b Eric Pearce (1997). Stručně řečeno: Windows NT: rychlá příručka pro správce systému. O'Reilly Media, Inc. str.271. ISBN 978-1-56592-251-8.
- ^ „GNU tar 1.30: 8.1 Využití menšího prostoru kompresí“. www.gnu.org. Citováno 22. dubna 2018.
- ^ A b FreeBSD Obecné příkazy Manuál –
- ^ „MirCPIO - paxmirabilis: dehet a dokonce ar!“. MirBSD. Citováno 24. ledna 2020.
- ^ „MirCPIO v Launchpadu“. launchpad.net. Citováno 22. dubna 2018.
- ^ „Bug # 456405“ pax nedostatek podpory pro formát „pax“ selže LSB “: Chyby: MirCPIO“. bugs.launchpad.net. Citováno 22. dubna 2018.
- ^ „os.1“. heirloom.sourceforge.net. Citováno 22. dubna 2018.
- ^ Poznámky k verzi LSB 3.0 Archivováno 17. 07. 2011 na Wayback Machine Všimněte si, že pax byl přidán: LSB 3.0. Příkazy a obslužné programy vyžaduje pax, ale LSB 2.1.0. Příkazy a obslužné programy nevyžaduje to
- ^ http://support.microsoft.com/kb/246322
- ^ "Extrahování souborů z balíčku pax.gz". cocoabuilder.com. Archivovány od originál dne 14. února 2015. Citováno 15. srpna 2013.
Další čtení
- Frisch, Æleen (2001). Referenční příručka pro Windows 2000 Commands. O'Reilly. ISBN 978-0-596-00148-3.
externí odkazy
- Archivace pomocí Pax Článek v Základy FreeBSD na ONLamp.com tím, že Dru Lavigne (2002-08-22)