Dtrx-Linux用のインテリジェントアーカイブ抽出(tar、zip、cpio、rpm、deb、rar)ツール


Linux tar.gz、tar.bz2、tbzコマンドを使用しているときに、私たち全員が何らかの状況に直面した可能性があります。非常に多くのアーカイブタイプ、覚えておくべき非常に多くのコマンド…ええと、dtrxツールのおかげでもうありません。

  1. 18 Tar Commands to Create and Extract Archives in Linux
  2. How to Open, Extract and Create RAR Files in Linux

Dtrxとは何ですか?

Dtrxは「DoTheRight Extraction」の略で、アーカイブ抽出の作業を簡単にする* nixシステム用のオープンソースで非常に効果的なコマンドラインアプリケーションです。

dtrxコマンドは、「tar-zxvf」または「tar-xjf」コマンドの代わりであり、tar、zip、rpm、deb、gem、7z、cpio、など、さまざまな形式でアーカイブを抽出するための1つのコマンドを提供します。 rarなど。また、bzip2、gzipなどで圧縮されたファイルを解凍するためにも使用できます。

デフォルトでは、dtrxはコンテンツを専用ディレクトリに抽出し、コンテンツの抽出中にユーザーが直面するアクセス許可の問題(アクセス許可の拒否など)を修正して、所有者がこれらすべてのファイルを読み書きできるようにします。

Dtrxの機能

  1. Handles many archive types: It provides only one simple command to extract tar, zip, rar, gz, bz2, xz, rpm, deb, gem, self-extracting zip files and many other formats of exe files.
  2. Keeps everything organized: It will extract archives into their own dedicated directories.
  3. Sane permissions: It also make sure, user can read and write all those files after extraction, keeping permission intact.
  4. Recursive extraction: It can find archives inside the archive and extract those too.

LinuxにDtrxをインストールする方法

dtrxツールはデフォルトでUbuntuリポジトリに含まれています。必要なのは、apt-getを実行してシステムにインストールすることだけです。

$ sudo apt-get install dtrx

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コマンドは、指輪物語でそれらすべてを支配する1つの指輪のようなものです。各アーカイブの構文を覚えておく代わりに、覚えておく必要があるのはdtrxコマンドだけです。

たとえば、「tecmint27-12-2013.gz」というアーカイブファイルを抽出したいのですが、フラグを使用せずにdtrxコマンドのみを実行します。

[[email protected]]# dtrx tecmint27-12-2013.gz

抽出を簡素化する以外に、ファイルをフォルダーに抽出したり、特定のアーカイブ内の他のすべてのアーカイブを再帰的に抽出したりするなど、他の多くのオプションがあります。

それぞれdtr1、dtr2、dtr3で構成されるdtr1.zip、dtr2.zip、dtr3.zipで構成されるファイル「dtrAll.zip」があるとします。最初にdtrAllzipを手動で抽出してから、dtr1、dtr2、およびdtr3をそれぞれ抽出する代わりに、dtrxを使用し、オプション「a」を選択することで、それぞれのフォルダーに直接抽出できます。すべてのzipファイルを再帰的に抽出します。

[[email protected]]# 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コマンドで確認できます。

[[email protected]]# cd dtrAll
[[email protected]]# ls 

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

内部のアーカイブではなく、最初のアーカイブを抽出するとします。 Nを選択すると、指定されたアーカイブのみが抽出され、その中の他のアーカイブは抽出されません。

[[email protected]]# 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コマンドを使用して確認できます。

[[email protected]]# cd dtrAll
[[email protected]]# ls

dtr1.zip dtr2.zip dtr3.zip

ケースバイケースでアーカイブ内のアーカイブの各レイヤーを抽出するには、つまり、アーカイブの2番目のレイヤーを抽出するが、3番目のレイヤーは抽出しない場合は、「o」オプションを使用できます。

「dtrAll.zip」と「dtrNew」をコンテンツとして含むzipファイル「dtrNewAll.zip」があるとします。ここで、「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コマンドを使用して確認できます。

[[email protected]]# cd dtrNewAll
[[email protected]]# ls

dtrAll  dtrAll.zip  dtrNew
[[email protected]]# cd dtrAll
[[email protected]]# ls

dtr1.zip dtr2.zip dtr3.zip

最初に「o」オプションを選択します。これは、dtrNewAll内のすべてのアーカイブが抽出されることを意味します。後で、dtrAll.zipの「n」オプションを選択します。これは、その中のアーカイブdtr1.zip、dtr2.zip、およびdtr3.zipが抽出されないことを意味します。

「-m」オプションは、通常の内容ではなく、.deb、.rpm、および.gemアーカイブからメタデータを抽出します。コマンドの例を次に示します。

[[email protected]]# dtrx -m openfire_3.8.2_all.deb 
[[email protected]]# dtrx -m openfire-3.8.2-1.i386.rpm
[[email protected]]# ls

conffiles  control  md5sums  postinst  postrm  prerm

探索するdtrxオプションは他にもたくさんあります。「dtrx–help」を実行して、使用可能なオプションを一覧表示してください。

[[email protected]]# 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は、あらゆる形式のアーカイブファイルを解凍する単一のコマンドを提供する唯一の強力なコマンドラインツールであるため、試してみる必要があると思います。今のところ以上です。コメントセクションにメモを残すことを忘れないでください。