Making extracting and compressing archive files easier (+ GUI Archive extractor)
Go to file
Marvin Johanning 7f5c050a39 Restructuring 2017-11-08 14:03:07 +01:00
lib/bin Restructuring 2017-11-08 14:03:07 +01:00
LICENSE Create LICENSE 2017-10-26 15:42:24 +02:00 Updated README 2017-11-08 13:52:55 +01:00 Easy Installer added 2017-11-01 13:23:49 +01:00 Slight tweak to 2017-11-07 19:08:00 +01:00

RuXt - A Ruby Extractor (and more)

What is this?

This is a little program I am currently working on that is supposed to make the (de-)compressing of files easier. It will use one set of commands and thus makes it easier to compress or decompress files. It currently uses all the native Linux commands for extracing and compressing files, however they can all be accessed using only one set of commands.


This program can be easily installed using the installer available here: Installer (Please note that you will need to have the git package installed on your operating system). It will clone the repository into ~/.ruxt and automatically set an alias for you in your .bashrc (if you do not use bash, the installer won't work properly). It will add the alias to the last line of the .bashrc and you will then be able to easily access the terminal version of RuXt by just typing 'xt' instead of a lengthy path to the ruby file.

Updating RuXt

You need to manually update your RuXt, however an alias for updating it has also been set. Simply run "updatext" anywhere in your terminal and the new version will replace the current one on your computer.



Please check whether the installation has finished correctly by typing xt -h. If you get some help regarding the program, then everything worked correctly.


This program uses your command line to do the work. It is basically a lot of shortcuts. If you want to be able to extract everything, you also need to install all the needed packages on your Linux machine, which are as follows:

  • "unzip" and "zip" (Only needed for compressing) -> 'ruby_zip' gem needed for extracting
  • "7z" (7zip)
  • "tar"
  • "unrar"

I am working on getting rid of the platform specific extraction methods and trying to implement native Ruby support (please refer to

Usage notes

The goal of this program is to have one set of commands for all the common compressed file format, which means that you will only need to remember one set of commands to be able to (de)compress virtually any file. Should you need some quick overview of all the commands and some help, please use the -h flag (xt -h)

Extract / Decompress

In order to decompress a file, simple type the following xt -e FILENAME. This will extract all the contents of the archive into your current working directory (currently supported file formats are tar, zip, rar and 7z for decompression). If you want to extract the file into a specific folder, you can use the -d flag as follows: xt -e FILENAME -d FOLDER


Compressing a file is a little more complex, but still pretty straightforward (the way compressing works will most likely still change, so please refer back to this Github repository after each update). An example of compressing a "Test" folder into "" is as follows: xt -t zip -n Test -c Test

A short explanation of the flags:

  • -t is used to specify the type of format you want to use for compressing the files / folders (currently only tar and zip)
  • -n specifies the name the archive should have (don't add any file endings)
  • -c is the flag that indicates that the following file should be compressed and not extracted (-e)

GUI (0.0.1)

I have started working on a GUI that is neither good-looking nor very functional at the moment. However, you can try it out and I also added a screenshot of the program


The GUI has been programmed using the Ruby Gem Shoes 4 which can be downloaded from Github. The program might potentially work using older versions of Shoes, however I haven't tested that myself and cannot guarantee that it will work using an older version.


(For a complete to-do list please refer to the file as I update it frequently and I won't have to edit the README everytime I add something)