Dtrx  - 用于Linux的智能归档提取(tar,zip,cpio,rpm,deb,rar)工具

我们所有的人可能会面临在某个时间点或其他同时使用Linux tar.gz,TAR.BZ2,TBZ命令的情况。 因此,许多存档类型,所以很多命令记得......嗯,不是任何-更多,这要归功于DTRX工具。

Dtrx提取tar文件的工具

  1. 18 tar命令在Linux中创建和解压缩归档
  2. 如何在Linux中打开,解压和创建RAR文件

什么是Dtrx?

DTRX表示“做正确提取 ”,这是一个开源的,非常有效的命令行应用程序* nix系统来简化你的档案提取的工作变得容易。

DTRX命令是一个替代的“ tar-zxvf”或“ tar-xjf”命令和它提供了一个单独的命令以提取在许多不同的格式,包括tar拉链转速 ,DEB, Gem ,7Z,cpio归档, RAR等等。 它也可以用来解压使用bzip2,gzip等压缩文件

默认情况下,DTRX提取内容到一个专门的目录,还修复权限问题(如拒绝许可 )所面临的用户,而提取的内容,以确保业主可以读取和写入所有这些文件。

Dtrx特性

  1. 处理许多归档类型 :它只提供一个简单的命令来提取tar,ZIP,RAR,GZ,BZ2,XZ,RPM,DEB,创业板,自解压ZIP文件和EXE文件等多种格式。
  2. 保持组织的一切 :它会提取档案到他们自己的专用目录。
  3. 理智的权限 :这也确保用户可以阅读和所有这些文件写入提取后,保持完好的权限。
  4. 递归提取 :它可以发现在归档中归档和提取这些呢。

如何在Linux中安装Dtrx

该DTRX工具是包含在Ubuntu软件仓库默认情况下,所有你所要做的就是简单的做一个易于得到您的系统上安装英寸

在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.提取单个存档

例如,我要提取名为“youcl27-12-2013.gz”一个存档文件,我只不使用任何标志执行DTRX命令。

[root@youcl]# dtrx youcl27-12-2013.gz

除了简化提取之外,它还有一系列其他选项,例如将文件提取到文件夹,并递归提取给定归档中的所有其他归档。

2.提取多个归档

想想你已经一个文件“dtrAll.zip”,dtr1.zip,dtr2.zipdtr3.zip每个由DTR1,dtr2分别DTR3。 而不必手动首先提取dtrAll拉链 ,然后使用DTRX并选择选项“a”提取DTR1,dtr2的每一个和DTR3你可以将它直接解压在各自的文件夹中,递归提取所有的zip文件。

[root@youcl]# 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@youcl]# cd dtrAll
[root@youcl]# ls 
dtr1  dtr1.zip  dtr2  dtr2.zip  dtr3  dtr3.zip

3.提取特定存档

假设您想要提取第一个归档文件,而不是其中的归档文件。 通过选择N,只提取给定存档和里面没有其他档案。

[root@youcl]# 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@youcl]# cd dtrAll
[root@youcl]# ls
dtr1.zip dtr2.zip dtr3.zip

4.提取归档的每一层

要逐个提取,即对案件档案内存档的每一层,如果要提取档案的第二层而不是第三层,可以使用“o”选项。

想想你已经一个zip文件“dtrNewAll.zip”,其中有“dtrAll.zip”“dtrNew”,因为它的内容。 现在,如果你想提取“dtrNewAll”“dtrAll”,以及内容但不dtr1.zip,dtr2.zipdtr3.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@youcl]# cd dtrNewAll
[root@youcl]# ls
dtrAll  dtrAll.zip  dtrNew
[root@youcl]# cd dtrAll
[root@youcl]# ls
dtr1.zip dtr2.zip dtr3.zip

我们首先选择“o”的选项,这意味着内部dtrNewAll所有存档将被提取。 以后我们选择dtrAll.zip“n”个选项,这意味着它里面dtr1.zip,dtr2.zipdtr3.zip档案将不会被提取。

5.从.deb,.rpm和.gem文件中提取元数据

“-m”选项中提取的,而不是他们的正常内容从.deb文件 ,.rpm的.gem档案元数据。 这是一个命令的例子。

[root@youcl]# dtrx -m openfire_3.8.2_all.deb 
[root@youcl]# dtrx -m openfire-3.8.2-1.i386.rpm
[root@youcl]# ls
conffiles  control  md5sums  postinst  postrm  prerm

有很多的选择DTRX探索,只要运行“DTRX -help”列出可用的选项。

[root@youcl]# 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,因为它是唯一的功能强大的命令行工具,一个命令来解压缩档案文件的任何格式。 这是现在,不要忘记留下你的注释在评论部分。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏