stringtranslate.com

pax (comando)

pax es una utilidad de archivado disponible para varios sistemas operativos y definida desde 1995. [1] En lugar de ordenar las opciones incompatibles que han surgido entre tary cpio, junto con sus implementaciones en varias versiones de Unix , el IEEE diseñó una nueva utilidad de archivado pax que podría admitir varios formatos de archivo con opciones útiles de ambos archivadores. El pax comando está disponible en sistemas operativos Unix y similares a Unix y en IBM i , [2] y Microsoft Windows NT [3] hasta Windows 2000 .

En 2001, IEEE definió un nuevo formato pax que es básicamente tar con atributos extendidos adicionales. [4] [5] El formato no es compatible con los comandos pax en la mayoría de las distribuciones de Linux y en FreeBSD, pero es compatible con los comandos tar de GNU y FreeBSD; el formato también es compatible con los comandos pax en AIX, Solaris y HP-UX.

El nombre "pax" es un acrónimo de intercambio de archivos portátiles , pero también es una alusión a la palabra latina para "paz"; la invocación y la estructura del comando representan una especie de unificación pacífica de tarambos cpio.

Historia

La primera implementación pública de pax fue escrita por Mark H. Colburn en 1989. Colburn la publicó en comp.sources.unix como reemplazo de Usenix/IEEE POSIX para TAR y CPIO . Las páginas del manual de pax en HP-UX , IRIX y SCO UNIX atribuyen pax a Colburn. [6]

Ya el borrador POSIX.2 10 de julio de 1990 cubre el comando pax . [7] Además, los borradores POSIX.2 e IEEE 1003.1b de 1991 cubren el comando pax , presentando los formatos de archivo cpio y ustar.

Keith Muller creó otra versión del programa pax en 1992-1993. [8] La primera versión apareció en 4.4BSD (1995). [9] El comando pax apareció en X/Open número 4 ( versión 1 de la Especificación Única Unix ) en 1995, [1] presentando los formatos de archivo cpio y ustar, que también eran los únicos dos formatos que aparecían en la Especificación Única Unix de 1997.

En 1997, Sun Microsystems propuso un método para agregar extensiones al formato ustar. Este método fue aceptado para el estándar POSIX.1-2001 como el nuevo formato de archivo pax . La especificación POSIX para la utilidad pax fue actualizada para incluir este formato. [1]

Características

Modos

pax tiene cuatro modos generales que se invocan mediante una combinación de las opciones -r ("leer") y -w ("escribir").

Esta tabla resume el comportamiento modal:

Este modelo es similar a cpio, que tiene un conjunto similar de operaciones básicas.

Ejemplos

Listar el contenido de un archivo:

$ pax  <  archivo.tar

Extraer el contenido de un archivo en el directorio actual:

$ pax  -r  <  archivo.tar

Crear un archivo del directorio actual:

$ printf '.' | pax -w > archivo.tar $ pax -w . > archivo.tar          

Copiar el árbol de directorios actual a otra ubicación:

$ printf '.' | pax -w > archivo.tar $ pax -rw directorio_objetivo .         

(¡El directorio de destino debe existir de antemano!)

Invocación de comando

De forma predeterminada, pax utiliza la entrada/salida estándar para las operaciones de archivo y listado. Esto se puede cambiar con la opción "tar-style" -fque especifica el archivo de almacenamiento. Pax se diferencia de cpio en que considera recursivamente el contenido de un directorio; para deshabilitar este comportamiento, pax POSIX tiene una opción -dpara deshabilitarlo.

El comando pax es una mezcla de características de cpio y tar . Al igual que tar , pax procesa las entradas de directorio de forma recursiva, una característica que se puede desactivar con un comportamiento de estilo cpio. El manejo de la entrada/salida de archivos también es una mezcla: cuando se especifica una lista de nombres de archivos en la línea de comandos, se toman como globs de shell para la entrada o lista de archivos (similar a tar); de lo contrario, pax adopta el comportamiento de estilo cpio de usar la entrada estándar para una lista de archivos. Finalmente, pax admite la lectura/escritura en un archivo de almacenamiento con nombre utilizando la opción de tar .-d-f FILE

Por ejemplo, si uno desea un archivado al estilo cpio del directorio actual, se puede usar pax con find tal como se hace usando cpio:

$ find  .  -depth  -print | pax -wd > archivo.tar     

(Esta construcción no tiene sentido sin ningún filtro para find , ya que se vuelve idéntica al ejemplo anterior).

El comando para extraer el contenido de un archivo es el mismo que cpio :

$ pax  -r  <  archivo.tar

tarTambién es posible invocar estos comandos en una sintaxis similar:

$ pax  -wf  archive.tar  . # escribir (archivar) $ pax -rf archive.tar # leer (extraer) $ pax -f archive.tar # listar $ pax -rw . archive_dir # copiar           

Compresión

La mayoría de las implementaciones de pax utilizan los modificadores -z ( gzip ) y -j ( bzip2 ) para la compresión; sin embargo, esta característica no está especificada por POSIX. Es importante tener en cuenta que pax no puede agregar nada a archivos comprimidos. Ejemplo para extraer un archivo comprimido con gzip:

$ pax  -rzf  archivo.tar.gz

Al igual que en tar y cpio, la salida de pax se puede enviar a otro programa compresor/descompresor. Como ejemplo, aquí se utiliza xz :

$ pax  -w  . | xz > archivo.tar.xz    

y enumerando un archivo comprimido xz como entrada:

 Archivo $ xzcat.tar.xz | pax  

Compatibilidad de formatos

POSIX.1-2001 requiere que el comando pax admita los formatos de archivo cpio, ustar y pax como mínimo.

Las versiones del comando pax que provienen de la implementación 4.4BSD generalmente heredan los formatos soportados por esa versión, seleccionables mediante la opción -x :

El formato pax POSIX.1-2001 no es compatible con esta versión BSD del comando pax . El formato no es compatible con la mayoría de las distribuciones Linux (cuyo comando pax es de la rama MirBSD de MirCPIO-paxmirabilis ) [10] [11] [12] y en FreeBSD [9] El formato es compatible con el comando pax en AIX, [13] Solaris [14] y HP-UX. También es compatible con el módulo tarfile de Python, [ 15] con libarchive con licencia BSD, [16] [17] con 7-ZIP [18] y también con GNU tar [19] y FreeBSD tar. [20] El comando pax del Proyecto Heirloom , desarrollado por Gunnar Ritter en 2003, es compatible con el formato pax así como con muchos formatos adicionales. [21]

Múltiples volúmenes

pax admite el archivado en varios volúmenes. Cuando se llega al final de un volumen, aparece el siguiente mensaje:

$ pax  -wf  /dev/fd0  . ¡ATENCIÓN! Se requiere un cambio en el volumen de archivo de pax. /dev/fd0 listo para el volumen de archivo: 2 Cargue el SIGUIENTE MEDIO DE ALMACENAMIENTO (si es necesario) y asegúrese de que esté HABILITADO PARA ESCRITURA. Escriba "y" para continuar, "." para salir de pax o "s" para cambiar a un nuevo dispositivo. Si no puede cambiar el medio de almacenamiento, escriba "s" . ¿El dispositivo está listo y en línea? >

Al restaurar un archivo desde varios medios, pax solicita el siguiente medio de la misma manera, cuando se llega al final del medio antes del final del archivo.

Estandarización, recepción y popularidad

A pesar de haber sido estandarizado en 2001 por el IEEE, a partir de 2010, pax goza de relativamente poca popularidad o adopción. [ cita requerida ] Esto se debe en parte a que no había ninguna necesidad de él por parte de los usuarios de Unix; era solo el comité POSIX el que quería tener una interfaz más consistente. Pax también es bastante conversacional y espera interacciones del usuario cuando las cosas van mal. [ cita requerida ]

El estándar Linux Base exige que pax esté presente en todos los sistemas compatibles desde la versión 3.0 (publicada el 6 de julio de 2005), [22] pero hasta ahora pocas distribuciones Linux lo incluyen e instalan de forma predeterminada. Sin embargo, la mayoría de las distribuciones incluyen pax como un paquete que se puede instalar por separado. [23] [24] [25]

pax también estuvo presente en Windows NT , donde se limita a archivos de archivos (no se admiten cintas). [3] Más tarde se trasladó al subsistema Interix . No admite el archivado ni la restauración de listas de control de acceso de Win32 . [26] pax estuvo presente también en Windows 2000. [27]

Los paquetes manejados por el instalador (macOS) a menudo llevan la mayor parte de su contenido en un archivo Archive.pax.gz que puede leerse utilizando la utilidad pax (heirloom) del sistema. [28]

Véase también

Referencias

  1. ^ abc Especificaciones básicas de The Open Group, número 6: POSIX.1-2001 (norma IEEE 1003.1) Copyright © 2001-2004 The IEEE y The Open Group
  2. ^ IBM . "Programación Qshell para IBM System i versión 7.2" (PDF) . IBM . Consultado el 5 de septiembre de 2020 .
  3. ^ de Eric Pearce (1997). Windows NT en pocas palabras: una referencia rápida de escritorio para administradores de sistemas . O'Reilly Media, Inc. pág. 271. ISBN 978-1-56592-251-8.
  4. ^ "GNU tar: 8.1 Uso de menos espacio mediante compresión". www.gnu.org . Archivado desde el original el 6 de marzo de 2016 . Consultado el 22 de abril de 2018 .
  5. ^ "GNU tar: 4.3.2 Atributos de archivo extendidos". www.gnu.org . Archivado desde el original el 28 de diciembre de 2019 . Consultado el 27 de enero de 2021 .
  6. ^ TAR versus Portabilidad – PAX y USTAR, invisible-island.net
  7. ^ IEEE P1003.2 Draft 11.2−September 1991 (pdf) - Shell and Utilities, princeton.edu - El borrador 11 indica cambios en pax , por lo que debe haber estado en el borrador 10
  8. ^ pax, svnweb.freebsd.org
  9. ^ ab pax(1) –  Manual de comandos generales de FreeBSD
  10. ^ "MirCPIO — paxmirabilis: ¡tar y hasta ar!". MirBSD . Consultado el 24 de enero de 2020 .
  11. ^ "MirCPIO en Launchpad". launchpad.net . Consultado el 22 de abril de 2018 .
  12. ^ "Bug #456405 "La falta de compatibilidad de pax con el formato "pax" hace que falle LSB": Errores: MirCPIO". bugs.launchpad.net . Consultado el 22 de abril de 2018 .
  13. ^ pax para AIX 7.3, ibm.com
  14. ^ pax para Solaris 11.1, docs.oracle.com
  15. ^ archivo tar, python.org
  16. ^ ArchivoLibrary, libarchive.org
  17. ^ libarchive(3), freebsd.org
  18. ^ HISTORIA del 7-Zip, 7-zip.org
  19. ^ Manual de tar, gnu.org
  20. ^ tar, freebsd.org
  21. ^ "pax.1". heirloom.sourceforge.net . Consultado el 22 de abril de 2018 .
  22. ^ Notas de la versión de LSB 3.0 Archivado el 17 de julio de 2011 en Wayback Machine. Tenga en cuenta que se agregó pax: LSB 3.0. Commands and Utilities requiere pax, pero LSB 2.1.0. Commands and Utilities no lo requiere.
  23. ^ pax, pkgs.org
  24. ^ spax, pkgs.org
  25. ^ reliquia-pax, pkgs.org
  26. ^ "Administración del sistema de copias de seguridad, Tar y Pax en Interix". Archivado desde el original el 23 de agosto de 2010.
  27. ^ Virtual x86, copia.sh
  28. ^ "Extracción de archivos de un paquete pax.gz". cocoabuilder.com. Archivado desde el original el 14 de febrero de 2015. Consultado el 15 de agosto de 2013 .

Lectura adicional

Enlaces externos