Pax (Unix)

pax ( acrónimo de portable archive e x change , literalmente "portable archive exchange") es una utilidad de archivo creada por POSIX y definida en el estándar POSIX.1-2001 [1] . El comando call y su estructura es una unión y unificación de tar y cpio .

Características

Modos

pax tiene cuatro modos principales, que están determinados por la combinación de interruptores -r ("leer" - lectura) -w ("escribir" - escribir).

La siguiente tabla resume los principales modos de operación:

Opción Modo Descripción
lista genera el contenido del archivo sin cambiar ni extraer nada.
-r leer lee y extrae el contenido de un archivo
-w escribe crea un archivo o lo complementa con archivos
-rw "Copiar" lee y copia archivos y estructura de directorios en el directorio especificado

Ejemplos:
Mostrar el contenido de un archivo:

pax < archivo.tar

Extraiga el contenido del archivo al directorio actual:

pax -r <archivo.tar

Cree un archivo del directorio actual:
cuando se usa en el estilo cpio , el comando de búsqueda se puede usar para enumerar los archivos que se archivarán:

encontrar. -profundidad -impresión | pax -wd > archivo.tar

Copiar el directorio actual a otra ubicación:
el directorio de destino debe crearse con anticipación.

encontrar. -profundidad -impresión | pax -rwd destino_dir

Comando de llamada

pax se puede usar de manera similar a cpio o tar . La sintaxis de cpio es obtener una lista de archivos de la entrada estándar ( stdin ), al archivar, o un archivo ya existente, al mostrar el contenido o extraer archivos:

encontrar. -profundidad -impresión | pax -wd > archivo.tar

y

pax -r <archivo.tar

respectivamente.

También es posible llamar a estos comandos de la misma forma que tar :

pax -wf archivo.tar .

y

pax -rf archivo.tar

Y en aras de la claridad y la exhaustividad:
Listado de archivos de un archivo:

pax -f archivo.tar

y modo "copiar":

pax-rw. archive_dir

La opción -f le permite especificar con qué archivo trabajar, en lugar de escribir en stdout o leer stdin . El uso de la opción -d con find evita atravesar los árboles de directorios de pax , ya que esto se hará en find

Compresión

La mayoría de las implementaciones de pax proporcionan una opción -z ( gzip ) y -j ( bzip2 ) para la compresión. Esta posibilidad, sin embargo, no está prescrita por la norma. Pax no puede aumentar los archivos comprimidos.

Ejemplo para extraer un archivo gzip:

pax -rzf archivo.tar.gz

Debido a la capacidad de usar cpio -style pax, es posible usar algún otro programa de compresión, como xz :

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

y mostrar el contenido del archivo xz:

archivo xzcat.tar.xz | paz

Formatos soportados

A partir de septiembre de 2009, las versiones de pax incluidas con la mayoría de las distribuciones de Linux y BSD (pax [2] ) admiten los siguientes formatos, habilitados con la opción -x :

Es importante que el formato pax en sí no sea compatible con la versión existente de pax. Algunas implementaciones, como Heirloom pax, admiten formatos de perspectiva, [3] incluido el propio formato pax.

Soporte para múltiples volúmenes

pax admite la capacidad de crear archivos de varios volúmenes . Cuando se llega al final del volumen, aparece el siguiente mensaje:

¡Atención! pax necesita cambiar el volumen del archivo. /dev/fd0 listo para volumen: 2 Cargue el siguiente elemento de almacenamiento (disco) si es necesario y asegúrese de que la escritura esté habilitada. Ingrese "y" para continuar, "." para finalizar pax, o "s" para cambiar a un nuevo dispositivo. Si no puede cambiar el elemento de almacenamiento (disco), ingrese "s" ¿Está el dispositivo listo y conectado? >

Al restaurar desde un archivo de varios volúmenes, pax solicita el siguiente elemento de almacenamiento de la misma manera cuando se llega al final del elemento de almacenamiento antes de llegar al final del archivo.

Estandarización, adopción y popularización

A pesar de haber sido estandarizado en 2001 por el IEEE, a partir de 2010 pax disfruta de una popularidad relativamente pequeña.

Se requiere que pax esté presente en todos los sistemas compatibles con Linux Standard Base desde la versión 3.0 (lanzada el 6 de julio de 2005), [4] pero aún pocas distribuciones de Linux lo proporcionan de forma predeterminada. Sin embargo, la mayoría de las distribuciones incluyen pax como un paquete separado.

pax también está presente en Windows NT , donde está limitado a archivos (no se admite la cinta). [5] Luego se trasladó al subsistema Interix . No se admite la creación y restauración de ACL de Win32. [6]

Los paquetes procesados ​​por el instalador de OS X a menudo se empaquetan en un archivo Archive.pax.gz que se puede leer con la utilidad pax. [7]

Notas

  1. The Open Group Base Specifications Edición 6  - POSIX.1-2001 (IEEE Std 1003.1) Copyright © 2001-2004 The IEEE and The Open Group
  2. pax hombre
  3. Página del manual de pax reliquia
  4. Notas de la versión de LSB 3.0 Archivado el 17 de julio de 2011. tenga en cuenta que se ha agregado pax: LSB 3.0. Requisito pax Comandos y Utilidades , pero LSB 2.1.0. Commands and Utilities no requiere esto
  5. Eric Pearce. Windows NT en pocas palabras: una referencia rápida de escritorio para  administradores de sistemas . - O'Reilly Media , 1997. - Pág. 271. - ISBN 978-1-56592-251-8 .
  6. Administración del sistema de copias de seguridad, Tar y Pax en Interix
  7. Extraer archivos de un paquete pax.gz (enlace descendente) . cocoabuilder.com. Consultado el 15 de agosto de 2013. Archivado desde el original el 14 de febrero de 2015. 

Enlaces

Véase también