Dtrx: una eina d'extracció d'arxiu intel·ligent (tar, zip, cpio, rpm, deb, rar) per a Linux


Tots ens podríem haver enfrontat a una situació en algun moment o altre mentre utilitzem les ordres tar.gz, tar.bz2, tbz de Linux. Tants tipus d'arxiu, tantes ordres per recordar... Bé, ja no, gràcies a l'eina dtrx.

  1. 18 ordres Tar per crear i extreure arxius a Linux
  2. Com obrir, extreure i crear fitxers RAR a Linux

Què és Dtrx?

Dtrx significa Do The Right Extraction, és una aplicació de línia d'ordres de codi obert i molt eficaç per a sistemes *nix que simplifiquen la vostra feina d'extracció d'arxius més fàcilment.

L'ordre dtrx és una substitució de les ordres tar -zxvf o tar -xjf i proporciona una única comanda per extreure arxius en diversos formats, com ara tar, zip, rpm, deb, gem, 7z, cpio, rar i molts més. També es pot utilitzar per descomprimir fitxers comprimits amb bzip2, gzip, etc.

De manera predeterminada, dtrx extreu contingut a un directori dedicat i també soluciona els problemes de permís (com ara el permís denegat) als quals s'enfronta l'usuari mentre extreu contingut per garantir que el propietari pugui llegir i escriure tots aquests fitxers.

Característiques de Dtrx

  1. Maneja molts tipus d'arxiu: només proporciona una ordre senzilla per extreure fitxers tar, zip, rar, gz, bz2, xz, rpm, deb, gem, fitxers zip autoextractius i molts altres formats de fitxers exe.
  2. Manté tot organitzat: extreu arxius als seus propis directoris dedicats.
  3. Permisos intel·ligents: també s'assegura que l'usuari pot llegir i escriure tots aquests fitxers després de l'extracció, mantenint el permís intacte.
  4. Extracció recursiva: pot trobar arxius dins de l'arxiu i extreure'ls també.

Com instal·lar Dtrx a Linux

L'eina dtrx s'inclou de manera predeterminada als dipòsits d'Ubuntu, tot el que heu de fer és fer un apt-get instal·lar-lo al vostre sistema.

$ sudo apt-get install dtrx

Als sistemes basats en Red Hat, dtrx no està disponible mitjançant repositoris predeterminats, cal que baixeu un script dtrx i instal·leu el programa a tot el sistema mitjançant les ordres següents com a usuari root.

# wget http://brettcsmith.org/2007/dtrx/dtrx-7.1.tar.gz
# tar -xvf dtrx-7.1.tar.gz 
# cd dtrx-7.1
# python setup.py install --prefix=/usr/local
running install
running build
running build_scripts
creating build
creating build/scripts-2.6
copying and adjusting scripts/dtrx -> build/scripts-2.6
changing mode of build/scripts-2.6/dtrx from 644 to 755
running install_scripts
copying build/scripts-2.6/dtrx -> /usr/local/bin
changing mode of /usr/local/bin/dtrx to 755
running install_egg_info
Creating /usr/local/lib/python2.6/site-packages/
Writing /usr/local/lib/python2.6/site-packages/dtrx-7.1-py2.6.egg-info

Com utilitzar l'ordre dtrx

L'ordre dtrx és com l'únic anell que els governa a tots al Senyor dels Anells. En lloc d'haver de recordar la sintaxi de cada arxiu, tot el que heu de recordar és l'ordre dtrx.

Per exemple, vull extreure un fitxer d'arxiu anomenat tecmint27-12-2013.gz, només executo l'ordre dtrx sense utilitzar cap senyalador.

 dtrx tecmint27-12-2013.gz

A part de simplificar l'extracció, té un munt d'altres opcions com extreure el fitxer a una carpeta i extreure recursivament tots els altres arxius dins d'un arxiu determinat.

Penseu que teniu un fitxer dtrAll.zip, format per dtr1.zip, dtr2.zip i dtr3.zip, cadascun format per dtr1, dtr2 i dtr3 respectivament. En lloc d'haver d'extreure manualment primer el zip dtrAll i després extreure cadascun dels dtr1, dtr2 i dtr3, podeu extreure'l directament a les respectives carpetes mitjançant dtrx i seleccionant l'opció a, extreu tots els fitxers zip de forma recursiva.

 dtrx dtrAll.zip
dtrx: WARNING: extracting /root/dtrAll.zip to dtrAll.1
dtrAll.zip contains 3 other archive file(s), out of 3 file(s) total.
You can:
 * _A_lways extract included archives during this session
 * extract included archives this _O_nce
 * choose _N_ot to extract included archives this once
 * ne_V_er extract included archives during this session
 * _L_ist included archives
What do you want to do?  (a/o/N/v/l) a

Després de l'extracció, el contingut del directori extret es pot verificar mitjançant l'ordre ls.

 cd dtrAll
 ls 

dtr1  dtr1.zip  dtr2  dtr2.zip  dtr3  dtr3.zip

Suposem que voleu extreure el primer arxiu i no els arxius que hi ha dins. En seleccionar N, només extreu l'arxiu donat i no altres arxius dins d'ell.

 dtrx dtrAll.zip
dtrx: WARNING: extracting /root/dtrAll.zip to dtrAll.1
dtrAll.zip contains 3 other archive file(s), out of 3 file(s) total.
You can:
 * _A_lways extract included archives during this session
 * extract included archives this _O_nce
 * choose _N_ot to extract included archives this once
 * ne_V_er extract included archives during this session
 * _L_ist included archives
What do you want to do?  (a/o/N/v/l) N

El contingut del directori extret es pot verificar mitjançant l'ordre ls tal com es mostra.

 cd dtrAll
 ls

dtr1.zip dtr2.zip dtr3.zip

Per extreure cada capa d'arxiu dins de l'arxiu cas per cas, és a dir, si voleu extreure la segona capa d'arxius però no la tercera capa, podeu utilitzar l'opció o.

Penseu que teniu un fitxer zip dtrNewAll.zip, que té dtrAll.zip i dtrNew com a contingut. Ara, si voleu extreure també el contingut de dtrNewAll i dtrAll, però no de dtr1.zip, dtr2.zip i dtr3.zip, podeu utilitzar les opcions o i n com es mostra a continuació.

# dtrx dtrNewAll.zip
dtrNewAll.zip contains 1 other archive file(s), out of 2 file(s) total.
You can:
 * _A_lways extract included archives during this session
 * extract included archives this _O_nce
 * choose _N_ot to extract included archives this once
 * ne_V_er extract included archives during this session
 * _L_ist included archives
What do you want to do?  (a/o/N/v/l) o
dtrAll.zip contains 3 other archive file(s), out of 3 file(s) total.
You can:
 * _A_lways extract included archives during this session
 * extract included archives this _O_nce
 * choose _N_ot to extract included archives this once
 * ne_V_er extract included archives during this session
 * _L_ist included archives
What do you want to do?  (a/o/N/v/l) n

El contingut del directori extret es pot verificar mitjançant l'ordre ls tal com es mostra.

 cd dtrNewAll
 ls

dtrAll  dtrAll.zip  dtrNew
 cd dtrAll
 ls

dtr1.zip dtr2.zip dtr3.zip

Primer seleccionem l'opció o, que significa que s'extreuran tots els arxius dins dtrNewAll. Més endavant seleccionem l'opció “n” per a dtrAll.zip, que vol dir que els arxius que hi ha dins dtr1.zip , dtr2.zip i dtr3.zip no s'extreuran.

L'opció -m extreu les metadades dels arxius .deb, .rpm i .gem, en lloc del seu contingut normal. Aquí teniu un exemple de l'ordre.

 dtrx -m openfire_3.8.2_all.deb 
 dtrx -m openfire-3.8.2-1.i386.rpm
 ls

conffiles  control  md5sums  postinst  postrm  prerm

Hi ha moltes més opcions dtrx per explorar, només cal que executeu dtrx -help per llistar les opcions disponibles.

 dtrx  --help

Usage: dtrx [options] archive [archive2 ...]

Intelligent archive extractor

Options:
  --version             	show program's version number and exit
  -h, --help            	show this help message and exit
  -l, -t, --list, --table      	list contents of archives on standard output
  -m, --metadata        	extract metadata from a .deb/.gem
  -r, --recursive       	extract archives contained in the ones listed
  -n, --noninteractive  	don't ask how to handle special cases
  -o, --overwrite       	overwrite any existing target output
  -f, --flat, --no-directory    extract everything to the current directory
  -v, --verbose         	be verbose/print debugging information
  -q, --quiet           	suppress warning/error messages

Enllaços de referència

Pàgina d'inici dtrx

Crec que heu de provar dtrx, perquè és l'única eina de línia d'ordres potent que ofereix una única ordre per descomprimir qualsevol format d'arxius. Això és tot de moment, i no us oblideu de deixar la vostra nota a la secció de comentaris.