Pax (Unix)

Pax

Tipusutilitat UNIX Modifica el valor a Wikidata
Característiques tècniques
Sistema operatiuGNU/Linux i BSD Modifica el valor a Wikidata

pax és una aplicació per arxivar fitxers creada per POSIX i definida per l'estàndard POSIX.1-2001.[1] En lloc de provar d'aglomerar les diferents alternatives incompatibles entre tar i cpio en diferents implementacions d'UNIX, l'IEEE va dissenyar una nova aplicació. El nom "pax" és l'acrònim portable archive exchange, "pax" significa "pau" en llatí, per tant el nom vol dir que aquesta aplicació posa pau entre els diferents seguidors de tar i cpio.

Característiques

Modes

pax té quatre modes de funcionament, que s'invoquen amb la combinació de "-r" (read, llegir) i "-w" (write, escriure). Aquesta taula resumeix els modes de funcionament

Opció Mode Descripció
(res) "llistar" mostra el contingut de l'arxiu sense modificar o extreure'n res.
-r "llegir (read)" llegeix i extreu el contingut de l'arxiu
-w "escriure (write)" crea l'arxiu o afegeix fitxers a l'arxiu
-rw "copiar" llegeix i copia arxius i l'arbre de directoris al directori especificar

Exemples:
Lista el contingut d'un arxiu:

pax < arxiu.tar

Extreu el contingut d'un arxiu al directori actual:

pax -r < archive.tar

Crea un arxiu amb el contingut del directori actual:

find. -depth -print | pax -wd > archive.tar

Copia el l'arbre del directori actual a un altre lloc:
El directori destí ha d'existir!

find. -depth -print | pax -rwd target_dir

Crida de la comanda

Es pot usar pax de manera similar a cpio o tar. La sitaxi de cpio llegeix una llista de fitxer de l'entrada estàndard (stdin) quan es vol arxivar o llegeix un fitxer ja existent amb les comandes d'extreure o llistar el contingut:

find. -depth -print | pax -wd > archive.tar

i

pax -r < archive.tar

respectivament.

Es pot cridar les mateixes comandes a l'estil tar-:

pax -wf archive.tar .

i

pax -rf archive.tar

I per complementarietat:
Llista el contingut d'un arxiu:

pax -f archive.tar

i el mode "copia":

pax -rw. archive_dir

L'opció -f especifica l'arxiu a usar en lloc d'escriure la sortida a stdio o llegir de stdin.

Compressió

La majoria d'implementacions de pax fan servir les opcions -z (gzip) i -j (bzip2) per la compressió, tot i que aquesta funció no està especificada per POSIX. pax no pot afegir fitxers a un arxiu comprimit. Exemple d'extreure un arxiu creat amb gzip:

pax -rzf archive.tar.gz

Donada la possibilitat d'usar pax amb l'estil de cpio, és possible usar qualsevol programa de compressió. Com a exemple, l'ús de xz:

pax -w. | xz > archive.tar.xz

i llistar el contingut d'un arxiu comprimit amb xz:

xzcat archive.tar.xz | pax

Formats suportats

A Setembre 2009, la versió de pax inclosa en la majoria de distribucions de GNU/Linux suporta els següents formats (seleccionables amb l'opció x:

  • cpio
  • bcpio
  • sv4cpio
  • sv4crc
  • tar
  • ustar (defecte)

Múltiples volums

pax suporta guardar l'arxiu en múltiples volums. Qaan s'arriba al final d'un voluem, apareix el següent missatge:

pax -wf /dev/fd0 .
ATTENTION! pax archive volume change required.
/dev/fd0 ready for archive volume: 2
Load the NEXT STORAGE MEDIA (if required) and make sure it is WRITE ENABLED.
Type "y" to continue, "." to quit pax, or "s" to switch to new device.
If you cannot change storage media, type "s"
Is the device ready and online? >

Quan s'extreuen fitxer d'un arxiu en múltiples volumns, pam demana pel següent mitja d'una manera similar.

Estandardització, rebuda i popularitat

Encara que va ser estandarditzat al 2001 per l'IEEE, aquest programa no té gaire adaptació.

És requisit que pax estigui disponible a tots els sistemes que vulguin complir la versió 3.0 de Linux Standard Base (6 de juliol de 2005),[2] però de moment poques Distribucions linux instal·len aquesta eina per defecte. Tanmateix, si que està disponible com un paquet instal·lable per separat.

pax està disponible al Windows_NT, on està limitat a treballar amb fitxers (no soporta cintes).[3] Més endavant va ser mogut al subsistema Interix. No soporta l'arxiu o l'extracció de ACLs de Win32.[4]

Els paquets que fa servir Installer (OS X) sovint contenten un arxiu Archive.pax.gz que pot ser llegit usant pax.[5]

Referències

  1. The Open Group Base Specifications Issue 6 - POSIX.1-2001 (IEEE Std 1003.1) Copyright © 2001-2004 The IEEE and The Open Group
  2. Release notes for LSB 3.0 Arxivat 2011-07-17 a Wayback Machine. note that pax was added: LSB 3.0. Commands and Utilities requires pax, but LSB 2.1.0. Commands and Utilities does not require it
  3. Eric Pearce. Windows NT in a nutshell: a desktop quick reference for system administrators. O'Reilly Media, Inc., 1997, p. 271. ISBN 978-1-56592-251-8. 
  4. [enllaç sense format] http://support.microsoft.com/kb/246322
  5. «Extracting files from a pax.gz package». cocoabuilder.com. Arxivat de l'original el 14 de febrer 2015. [Consulta: 15 agost 2013].