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.
- 18 ordres Tar per crear i extreure arxius a Linux
- 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
- 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.
- Manté tot organitzat: extreu arxius als seus propis directoris dedicats.
- 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.
- 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.