Pesquisa de site

Dtrx - Uma ferramenta inteligente de extração de arquivos (tar, zip, cpio, rpm, deb, rar) para Linux


Todos nós podemos ter enfrentado uma situação em algum momento ou outro ao usar os comandos tar.gz, tar.bz2, tbz do Linux . Tantos tipos de arquivos, tantos comandos para lembrar... Bem, não mais, graças à ferramenta dtrx.

  1. 18 comandos Tar para criar e extrair arquivos no Linux
  2. Como abrir, extrair e criar arquivos RAR no Linux

O que é Dtrx?

Dtrx significa “Do The Right Extraction“, é um aplicativo de linha de comando de código aberto e muito eficaz para sistemas *nix que simplifica seu trabalho de extração de arquivos.

O comando dtrx é um substituto dos comandos “tar -zxvf” ou “tar -xjf” e fornece um único comando para extrair arquivos em vários formatos diferentes, incluindo tar, zip, rpm, deb, gem >, 7z, cpio, rar e muitos mais. Também pode ser usado para descompactar arquivos compactados com bzip2, gzip etc.

Por padrão, o dtrx extrai o conteúdo para um diretório dedicado e também corrige problemas de permissão (como permissão negada) enfrentados pelo usuário ao extrair o conteúdo para garantir que o proprietário possa ler e escrever todos esses arquivos.

Recursos Dtrx

  1. Lida com muitos tipos de arquivos: fornece apenas um comando simples para extrair arquivos tar, zip, rar, gz, bz2, xz, rpm, deb, gem, arquivos zip autoextraíveis e muitos outros formatos de arquivos exe .
  2. Mantém tudo organizado: Extrai os arquivos em seus próprios diretórios dedicados.
  3. Permissões sensatas: também garante que o usuário possa ler e gravar todos os arquivos após a extração, mantendo a permissão intacta.
  4. Extração recursiva: pode encontrar arquivos dentro do arquivo e extraí-los também.

Como instalar o Dtrx no Linux

A ferramenta dtrx está incluída por padrão nos repositórios do Ubuntu, tudo que você precisa fazer é simplesmente fazer um apt-get para instalar em seu sistema.

No Debian/Ubuntu/Linux Mint

sudo apt-get install dtrx

No RHEL/CentOS/Fedora

Em sistemas baseados em Red Hat, dtrx não está disponível através de repositórios padrão, você precisa baixar um script dtrx e instalar o programa em todo o sistema usando os comandos abaixo como usuário 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
Saída de amostra
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

Como usar o comando dtrx

O comando dtrx é como o único anel para governar todos eles no Senhor dos Anéis. Em vez de ter que lembrar a sintaxe de cada arquivo, tudo que você precisa lembrar é o comando dtrx.

1. Extraindo Arquivo Único

Por exemplo, quero extrair um arquivo chamado “tecmint27-12-2013.gz“, apenas executo o comando dtrx sem usar nenhum sinalizador.

[root@tecmint]# dtrx tecmint27-12-2013.gz

Além de simplificar a extração, ele possui várias outras opções, como extrair o arquivo para uma pasta e extrair recursivamente todos os outros arquivos dentro de um determinado arquivo.

2. Extraindo vários arquivos

Considere que você tem um arquivo “dtrAll.zip“, consistindo em dtr1.zip, dtr2.zip e dtr3.zip< cada um consistindo em dtr1,dtr2 e dtr3 respectivamente. Em vez de primeiro extrair manualmente o dtrAll zip e depois extrair cada um dos dtr1, dtr2 e dtr3 você pode extraí-lo diretamente nas respectivas pastas usando dtrx e selecionando a opção “a“, ele extrai todos os arquivos zip recursivamente.

[root@tecmint]# dtrx dtrAll.zip
Saída de amostra
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

Após a extração, o conteúdo do diretório extraído pode ser verificado usando o comando ls.

[root@tecmint]# cd dtrAll
[root@tecmint]# ls 

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

3. Extraindo Arquivo Específico

Digamos que você queira extrair o primeiro arquivo e não os arquivos dentro dele. Ao selecionar N, ele extrai apenas o arquivo fornecido e não outros arquivos dentro dele.

[root@tecmint]# dtrx dtrAll.zip
Saída de amostra
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

O conteúdo do diretório extraído pode ser verificado usando o comando ls conforme mostrado.

[root@tecmint]# cd dtrAll
[root@tecmint]# ls

dtr1.zip dtr2.zip dtr3.zip

4. Extraia cada camada de arquivo

Para extrair cada camada de arquivo dentro do arquivo caso a caso, ou seja, se você deseja extrair a 2ª camada de arquivos, mas não a 3ª camada, você pode usar a opção “o”.

Considere que você tem um arquivo zip “dtrNewAll.zip“, que tem “dtrAll.zip” e “dtrNew” como conteúdo. Agora, se você deseja extrair o conteúdo de “dtrNewAll” e “dtrAll” também, mas não de dtr1.zip, dtr2 .zip e dtr3.zip, você pode usar as opções “o” e “n” conforme mostrado abaixo.

dtrx dtrNewAll.zip
Saída de amostra
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

O conteúdo do diretório extraído pode ser verificado usando o comando ls conforme mostrado.

[root@tecmint]# cd dtrNewAll
[root@tecmint]# ls

dtrAll  dtrAll.zip  dtrNew
[root@tecmint]# cd dtrAll
[root@tecmint]# ls

dtr1.zip dtr2.zip dtr3.zip

Primeiro selecionamos a opção “o”, o que significa que todos os arquivos dentro de dtrNewAll serão extraídos. Posteriormente selecionamos a opção “n” para dtrAll.zip o que significa que os arquivos dentro dele dtr1.zip , dtr2.zip e dtr3.zip não serão extraídos.

5. Extraia metadados de arquivos .deb, .rpm e .gem

A opção “-m” extrai os metadados dos arquivos .deb, .rpm e .gem, em vez de seu conteúdo normal. Aqui está um exemplo do comando.

[root@tecmint]# dtrx -m openfire_3.8.2_all.deb 
[root@tecmint]# dtrx -m openfire-3.8.2-1.i386.rpm
[root@tecmint]# ls

conffiles  control  md5sums  postinst  postrm  prerm

Existem muito mais opções de dtrx para explorar, basta executar o “dtrx –help” para listar as opções disponíveis.

[root@tecmint]# 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

Links de referência

Página inicial do dtrx

Acho que você deve tentar dtrx, porque é a única ferramenta poderosa de linha de comando que fornece um único comando para descompactar qualquer formato de arquivo compactado. Por enquanto é isso, e não se esqueça de deixar sua nota na seção de comentários.