Jan
e – Extract Any Archive
What?
With this little tool you can extract almost any archive in Linux so you do not need to remember which tool and what command lines are necessary.
Why?
I got fed up with the sheer impossible number of compression formats out there. I am an avid linux command line user, but remembering 20 different commands with strange switches to get to the juicy content of a compressed files is too much for me.
Therefore I have just happily spent a few hours of my life to write the application e that identifies which extraction tool to call with what parameter in order to save me precious seconds of rereading forgotten manpages.
Usage
This marvelous extraction tool works like this:
Extract a zip file:
e file.zip
Extract a rar file:
e file.rar
Extract several archives, one after another:
e a.tar.gz b.tar.bz2 c.cab d.deb e.rpm
Extract every file from the current directory:
e *
If possible, e identifies the file format by the content and not by the extension, so for most filetypes e can extract it no matter how you name it. It supports rar, zip, tar.gz, tar.bz2, cab, ace, 7zip, dep, rpm, lha, lzop, rzip, and some more; it is very easy to extend it to support other compression utilities.
I was also inspired by the ugliness of the tool unp which tries to do exactly what e does. I did not like the implementation (written in Perl), and thought I can have the same features in a much simpler and more extensible way. The result is that e is just about 80 lines of code, where most of it is either comment or rules that define when to call what. If you know Ruby, have a look at the code.
Installation
For the impatient, installation on Ubuntu:
sudo apt-get install ruby
wget http://martin.ankerl.com/files/e
chmod a+x e
sudo mv e /usr/local/bin
Step by step:
1. e is written in Ruby, so you need to install this.
2. Download e from here
3. copy e into your /usr/local/bin directory
4. make it executable with chmod +x /usr/local/bin/e.
If you find an archive that e cannot extract and you know a working rule for it, please tell me and I will integrate it.
Download
* Get e here.
Related posts:


Ah ruby, one of the few languages that I neglect to really look at. Nice script paul, "e" for the win.
yeah i've wanted something like this for years and i must say that it works very well