Поиск по сайту:

Dtrx — интеллектуальный инструмент для извлечения архивов (tar, zip, cpio, rpm, deb, rar) для Linux


Каждый из нас мог в тот или иной момент столкнуться с ситуацией при использовании команд Linux tar.gz, tar.bz2, tbz. . Так много типов архивов, так много команд, которые нужно запомнить… Теперь уже нет, благодаря инструменту dtrx.

  1. 18 команд Tar для создания и извлечения архивов в Linux
  2. Как открывать, извлекать и создавать файлы RAR в Linux

Что такое Дтркс?

Dtrx означает «Do The Right Extraction». Это очень эффективное приложение командной строки с открытым исходным кодом для систем *nix, которое упрощает вашу работу по извлечению архивов.

Команда dtrx заменяет команды «tar -zxvf» или «tar -xjf» и предоставляет единую команду для извлечения архивов. в различных форматах, включая tar, zip, rpm, deb, gem. >, 7z, cpio, rar и многие другие. Его также можно использовать для распаковки файлов, сжатых с помощью bzip2, gzip и т. д.

По умолчанию dtrx извлекает содержимое в выделенный каталог, а также устраняет проблемы с разрешениями (например, отказано в доступе), с которыми сталкивается пользователь при извлечении содержимого, чтобы гарантировать, что владелец может читать и записывать все эти файлы.

Возможности Dtrx

  1. Работает со многими типами архивов: он предоставляет только одну простую команду для извлечения tar, zip, rar, gz, bz2, xz, rpm, deb, gem, самораспаковывающихся zip-файлов и многих других форматов exe-файлов. .
  2. Поддерживает порядок: архивы извлекаются в отдельные каталоги.
  3. Разумные разрешения. Также гарантируется, что пользователь может читать и записывать все эти файлы после извлечения, сохраняя разрешения нетронутыми.
  4. Рекурсивное извлечение: он может находить архивы внутри архива и также извлекать их.

Как установить Dtrx в Linux

Инструмент dtrx по умолчанию включен в репозитории Ubuntu, все, что вам нужно сделать, это просто выполнить apt-get для установки в вашей системе.

В Debian/Ubuntu/Linux Mint

sudo apt-get install dtrx

На RHEL/CentOS/Fedora

В системах на базе Red Hat dtrx недоступен в репозиториях по умолчанию. Вам необходимо загрузить сценарий dtrx и установить программу для всей системы, используя приведенные ниже команды от имени пользователя 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

Как использовать команду dtrx

Команда dtrx похожа на одно кольцо, которое управляет всеми во «Властелине колец». Вместо того, чтобы запоминать синтаксис каждого архива, вам нужно запомнить только команду dtrx.

1. Извлечение одного архива

Например, я хочу извлечь архивный файл с именем «tecmint27-12-2013.gz». Я выполняю только команду dtrx без использования каких-либо флагов.

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

Помимо упрощения извлечения, у него есть множество других опций, таких как извлечение файла в папку и рекурсивное извлечение всех остальных архивов внутри данного архива.

2. Извлечение нескольких архивов

Предположим, у вас есть файл «dtrAll.zip», состоящий из dtr1.zip, dtr2.zip и dtr3.zip<. каждый состоит из dtr1, dtr2 и dtr3 соответственно. Вместо того, чтобы вручную сначала распаковывать архив dtrAll, а затем извлекать каждый из dtr1, dtr2 и dtr3 вы можете напрямую извлечь его в соответствующие папки, используя dtrx и выбрав опцию «a», он рекурсивно извлекает все zip-файлы.

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

После извлечения содержимое извлеченного каталога можно проверить с помощью команды ls.

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

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

3. Извлечение конкретного архива

Допустим, вы хотите извлечь первый архив, а не архивы внутри него. При выборе N извлекается только данный архив, а не другие архивы внутри него.

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

Содержимое извлеченного каталога можно проверить с помощью команды ls, как показано.

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

dtr1.zip dtr2.zip dtr3.zip

4. Извлеките каждый слой архива

Чтобы извлечь каждый слой архива внутри архива в каждом конкретном случае, т. е. если вы хотите извлечь 2-й уровень архивов, но не 3-й слой, вы можете использовать опцию «o».

Предположим, у вас есть zip-файл «dtrNewAll.zip», который содержит «dtrAll.zip» и «dtrNew». Теперь, если вы хотите извлечь содержимое «dtrNewAll» и «dtrAll», но не dtr1.zip, dtr2 .zip и dtr3.zip, вы можете использовать параметры «o» и «n», как показано ниже.

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

Содержимое извлеченного каталога можно проверить с помощью команды ls, как показано.

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

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

dtr1.zip dtr2.zip dtr3.zip

Сначала мы выбираем опцию «o», что означает, что все архивы внутри dtrNewAll будут извлечены. Позже мы выбираем опцию «n» для dtrAll.zip, что означает, что архивы внутри него dtr1.zip , dtr2.zip и dtr3.zip не будут извлечены.

5. Извлеките метаданные из файлов .deb, .rpm и .gem.

Параметр «-m» извлекает метаданные из архивов .deb, .rpm и .gem. вместо их обычного содержания. Вот пример команды.

[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

Есть гораздо больше вариантов dtrx, которые стоит изучить, просто запустите «dtrx –help», чтобы просмотреть доступные параметры.

[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

Справочные ссылки

Домашняя страница dtrx

Я думаю, вам стоит попробовать dtrx, потому что это единственный мощный инструмент командной строки, который дает одну команду для распаковки архивных файлов любого формата. На этом пока всё, и не забудьте оставить свою заметку в разделе комментариев.