Pax (Unix)

pax ( acronim pentru schimbarea e x de arhivă portabilă , lit. „schimb de arhive portabil”) este un utilitar de arhivă creat de POSIX și definit în standardul POSIX.1-2001 [ 1] . Comanda de apel și structura sa este o unire și unificare a tar și cpio .

Caracteristici

Moduri

pax are patru moduri principale, care sunt determinate de combinația de comutatoare -r ("citire" - citire) -w ("scriere" - scriere).

Următorul tabel rezumă principalele moduri de funcționare:

Opțiune Modul Descriere
listă scoate conținutul arhivei fără a modifica sau extrage nimic.
-r citit citește și extrage conținutul unei arhive
-w scrie creează o arhivă sau o completează cu fișiere
-rw "copie" citește și copiază fișierele și structura de directoare în directorul specificat

Exemple:
afișați conținutul unei arhive:

pax < arhiva.tar

Extrageți conținutul arhivei în directorul curent:

pax -r <arhiva.tar

Creați o arhivă a directorului curent: atunci
când este utilizată în stilul cpio , comanda find poate fi folosită pentru a lista fișierele de arhivat:

găsi. -adâncime -imprimare | pax -wd > archive.tar

Copierea directorului curent într-o altă locație:
directorul țintă trebuie creat în prealabil.

găsi. -adâncime -imprimare | pax -rwd dir_țintă

Apelați comanda

pax poate fi folosit în mod similar cu cpio sau tar . Sintaxa pentru cpio este de a obține o listă de fișiere de la intrarea standard ( stdin ), la arhivare sau o arhivă deja existentă, la afișarea conținutului sau la extragerea fișierelor:

găsi. -adâncime -imprimare | pax -wd > archive.tar

și

pax -r <arhiva.tar

respectiv.

De asemenea, este posibil să apelați aceste comenzi în același mod ca tar :

pax -wf archive.tar .

și

pax -rf arhiva.tar

Și de dragul clarității și completității:
Listarea fișierelor dintr-o arhivă:

pax -f arhivă.tar

și modul „copiere”:

pax -rw . archive_dir

Opțiunea -f vă permite să specificați cu ce arhivă să lucrați, în loc să scrieți în stdout sau să citiți stdin . Utilizarea opțiunii -d cu find evită traversarea arborilor de directoare pax , deoarece acest lucru se va face în find

Compresie

Majoritatea implementărilor pax oferă o opțiune -z ( gzip ) și -j ( bzip2 ) pentru compresie. Această posibilitate, însă, nu este prescrisă de standard. Pax nu poate mări arhivele comprimate.

Exemplu pentru extragerea unei arhive gzip:

pax -rzf archive.tar.gz

Datorită capacității de a utiliza pax în stil cpio , este posibil să utilizați un alt program de compresie, cum ar fi xz :

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

și afișați conținutul arhivei xz:

xzcat archive.tar.xz | pax

Formate acceptate

Din septembrie 2009, versiunile de pax incluse în majoritatea distribuțiilor Linux și BSD (pax [2] ) acceptă următoarele formate, activate cu opțiunea -x :

Este important ca formatul pax în sine să nu fie acceptat de versiunea existentă de pax. Unele implementări, cum ar fi Heirloom pax, acceptă formate de perspectivă, [3] inclusiv formatul pax în sine.

Suport pentru mai multe volume

pax acceptă capacitatea de a crea arhive cu mai multe volume . Când se ajunge la sfârșitul volumului, apare următorul mesaj:

Atenţie! pax trebuie să schimbe volumul arhivei. /dev/fd0 gata pentru volum: 2 Încărcați următorul element de stocare (disc) dacă este necesar și asigurați-vă că scrierea este activată. Introdu „y” pentru a continua, "." pentru a termina pax sau „s” pentru a comuta la un dispozitiv nou. Dacă nu puteți schimba elementul de stocare (disc), introduceți „s” Este dispozitivul gata și conectat? >

La restaurarea dintr-o arhivă cu mai multe volume, pax solicită următorul element de stocare în același mod când se ajunge la sfârșitul elementului de stocare înainte de a ajunge la sfârșitul arhivei.

Standardizare, adoptare și popularizare

În ciuda faptului că a fost standardizat în 2001 de IEEE, din 2010 pax se bucură de o popularitate relativ mică.

pax trebuie să fie prezent pe toate sistemele compatibile cu Linux Standard Base începând cu versiunea 3.0 (lansată pe 6 iulie 2005), [4] dar încă puține distribuții Linux îl oferă implicit. Cu toate acestea, majoritatea distribuțiilor includ pax ca pachet separat.

pax este prezent și în Windows NT , unde este limitat la arhive de fișiere (banda nu este acceptată). [5] Apoi a fost mutat în subsistemul Interix . Crearea și restaurarea ACL-urilor Win32 nu este acceptată. [6]

Pachetele procesate de programul de instalare OS X sunt adesea ambalate într-un fișier Archive.pax.gz care poate fi citit cu utilitarul pax. [7]

Note

  1. Specificațiile de bază ale grupului deschis, numărul 6  - POSIX.1-2001 (IEEE Std 1003.1) Copyright © 2001-2004 The IEEE și The Open Group
  2. man pax
  3. Pagina de manual Heirloom pax
  4. Note de lansare pentru LSB 3.0 Arhivat 17 iulie 2011. rețineți că a fost adăugat pax: LSB 3.0. Cerință pentru comenzi și utilități , dar LSB 2.1.0. Comenzi și utilitare nu necesită acest lucru
  5. Eric Pearce. Windows NT pe scurt: o referință rapidă pentru desktop pentru  administratorii de sistem . - O'Reilly Media , 1997. - P. 271. - ISBN 978-1-56592-251-8 .
  6. Administrarea sistemului de copii de rezervă, Tar și Pax în Interix
  7. Extragerea fișierelor dintr-un pachet pax.gz (downlink) . cocoabuilder.com. Consultat la 15 august 2013. Arhivat din original la 14 februarie 2015. 

Link -uri

Vezi și