|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" |
|
2 "http://www.w3.org/TR/html4/strict.dtd"> |
|
3 |
|
4 <html><head><title>dtrx: Intelligent archive extraction</title> |
|
5 <link rel="stylesheet" href="common.css"> |
|
6 </head> |
|
7 <body> |
|
8 <h1>dtrx: Intelligent archive extraction</h1> |
|
9 |
|
10 <h2>Introduction</h2> |
|
11 |
|
12 <p><span class="pname">dtrx</span> stands for “Do The Right |
|
13 Extraction.” It's a tool for Unix-like systems that takes all the |
|
14 hassle out of extracting archives. Here's an example of how you use |
|
15 it:</p> |
|
16 |
|
17 <pre>$ dtrx linux-2.6.10.tar.bz2</pre> |
|
18 |
|
19 <p>That's basically the same thing as:</p> |
|
20 |
|
21 <pre>$ tar -jxf linux-2.6.10.tar.bz2</pre> |
|
22 |
|
23 <p>But there's more to it than that. You know those really annoying files |
|
24 that don't put everything in a dedicated directory, and have the |
|
25 permissions all wrong?</p> |
|
26 |
|
27 <pre>$ tar -zvxf random-tarball.tar.gz |
|
28 foo |
|
29 bar |
|
30 data/ |
|
31 data/text |
|
32 $ cd data/ |
|
33 cd: permission denied: data</pre> |
|
34 |
|
35 <p><span class="pname">dtrx</span> takes care of all those problems for |
|
36 you, too:</p> |
|
37 |
|
38 <pre>$ dtrx random-tarball.tar.gz |
|
39 $ cd random-tarball/data |
|
40 $ cat text |
|
41 This all works properly.</pre> |
|
42 |
|
43 <p><span class="pname">dtrx</span> is simple and powerful. Just use the |
|
44 same command for all your archive files, and they'll never frustrate you |
|
45 again.</p> |
|
46 |
|
47 <h2>Features</h2> |
|
48 |
|
49 <ul> |
|
50 |
|
51 <li><strong>Handles many archive types</strong>: You only need to remember |
|
52 one simple command to extract |
|
53 |
|
54 <span class="pname">tar</span>, |
|
55 <span class="pname">zip</span>, |
|
56 <span class="pname">cpio</span>, |
|
57 <span class="pname">deb</span>, |
|
58 <span class="pname">rpm</span>, |
|
59 <span class="pname">gem</span>, |
|
60 <span class="pname">7z</span>, |
|
61 <span class="pname">cab</span>, |
|
62 <span class="pname">gz</span>, |
|
63 <span class="pname">bz2</span>, and |
|
64 <span class="pname">lzma</span> files. |
|
65 |
|
66 If they have any extra compression, like <span |
|
67 class="pname">tar.bz2</span>, <span class="pname">dtrx</span> will take |
|
68 care of that for you, too.</li> |
|
69 |
|
70 <li><strong>Keeps everything organized</strong>: <span |
|
71 class="pname">dtrx</span> will make sure that archives are extracted into |
|
72 their own dedicated directories.</li> |
|
73 |
|
74 <li><strong>Sane permissions</strong>: <span class="pname">dtrx</span> makes |
|
75 sure you can read and write all the files you just extracted, while leaving |
|
76 the rest of the permissions intact.</li> |
|
77 |
|
78 <li><strong>Recursive extraction</strong>: <span class="pname">dtrx</span> can |
|
79 find archives inside the archive and extract those too.</li> |
|
80 |
|
81 </ul> |
|
82 |
|
83 <h2>Download</h2> |
|
84 |
|
85 <p><a href="dtrx-6.0.tar.gz">Download <span class="pname">dtrx</span> |
|
86 6.0</a>. The SHA1 checksum for this file |
|
87 is <tt>dbe0211c90d6d03035f612fe31f96c825aa75274</tt>. New features in this |
|
88 release include:</p> |
|
89 |
|
90 <ul> |
|
91 |
|
92 <li>When you specify <tt>-v</tt> at the command |
|
93 line, <span class="pname">dtrx</span> will display the files it |
|
94 extracts, much like <span class="pname">tar</span>.</li> |
|
95 |
|
96 <li>When <span class="pname">dtrx</span> prompts you about how to handle |
|
97 recursive archives, you now have the option of listing what those |
|
98 archives before making a decision.</li> |
|
99 |
|
100 <li><span class="pname">dtrx</span> will now provide more information about |
|
101 why a particular extraction attempt failed. It will show you error |
|
102 messages from all the attempts it made, rather than only the last error |
|
103 it got. It will also detect and warn you when one of the underlying |
|
104 extraction tools, like <span class="pname">cabextract</span>, cannot be |
|
105 found.</li> |
|
106 |
|
107 <li><span class="pname">dtrx</span> does a better job of cleaning up after |
|
108 itself. It wouldn't always clean up temporary files after certain |
|
109 errors; that has been fixed. It also catches SIGINT and SIGTERM and |
|
110 cleans up before finishing execution.</li> |
|
111 |
|
112 <li>Version 5.0 introduced a regression such |
|
113 that <span class="pname">dtrx</span> would not offer to extract |
|
114 recursive archives that were hidden under subdirectories. Version 6.0 |
|
115 fixes that.</li> |
|
116 |
|
117 </ul> |
|
118 |
|
119 <h2>Requirements</h2> |
|
120 |
|
121 <p>If you have Python 2.4 or greater, this should work out of the box. If |
|
122 you're stuck on Python 2.3, you can use this if you install the <a |
|
123 href="http://www.lysator.liu.se/~astrand/popen5/">subprocess module</a>. |
|
124 You'll need the usual tools for the archive types you want to extract: for |
|
125 example, if you're extracting <span class="pname">zip</span> files, you'll |
|
126 need <span class="pname">zipinfo</span> and <span |
|
127 class="pname">unzip</span>.</p> |
|
128 |
|
129 <h2>Installation</h2> |
|
130 |
|
131 <p>You can just put <span class="pname">scripts/dtrx</span> wherever is |
|
132 convenient for you, but if you want to install the program system-wide, you |
|
133 can also run the following command as root or equivalent:</p> |
|
134 |
|
135 <pre>python setup.py install</pre> |
|
136 |
|
137 <p>See the included <tt>INSTALL</tt> file for more information.</p> |
|
138 |
|
139 </body> |
|
140 </html> |