Comprehensive convenience wrapper for archive extraction
C Python Shell Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
test sources



by deitarion (Stephan Sokolow) Version

Inspired by maitre's unball. (It would be based on it, but there was none of the old code left by the time I was done the first release)

Unit Test Status Coverage Status

Version 1.0.0 of this script will be released when I am satisfied that the interface behaviour has stabilized and that the list of supported archive formats and planned features have grown/shrunk enough.

Known Flaws

  • As of 2013-03-28, the Python port is functional with the remaining test failures caused by incomplete support for certain formats already supported by the old shell script version.
  • Installation for unball 0.3.x is still being converted from to
  • The style and architecture for the codebase and test suite are still very much stuck back in 2009.
  • Documentation is still catching up to the 0.3.x rewrite.
  • Gentoo's app-arch/unarj isn't supported because app-arch/arj is GPLed and better in every way.


Base Dependencies:

  • A POSIX-compliant system (Linux, *BSD, MacOS X, etc.)
  • Python 2.6+ (3.x support not yet ready)

For unball:

  • The extraction tools for the formats you use, accessible via the PATH.

For moveToZip:

  • InfoZIP (The zip command) is non-optional.

For the unit tests:

  • As many of the supported extraction tools as possible

For the Xfce integration:

  • A version of Xfce which uses Thunar as it's file manager
  • Zenity (for the "Extract to..." option)




Just run unball and let it do it's thing. For details, run unball --help.
Right-click any archive and "Extract with unball" will be available in the Actions menu. Right-click any folder and "Move to Zip Archive" will be available in the Actions menu.
Right-click any archive and "Unball" will be available in the Scripts menu. Right-click any file or folder and "Move to ZIP" will be available in the Scripts menu.
thunar-archive-plugin will offer unball (and moveToZip) as the backend for it's archive functions.

The unit tests can be run by typing ./ after installing unball. (preferrably not as root) For details on the options accepts, use the --help option.


When using Konqueror, you can easily batch-convert a collection of assorted archives to Zips:

  1. Select all of the archives and choose "Extract with unball" from the Actions menu.
  2. Select all of the folders which result and choose "Move to Zip Archive" from the Actions menu.
  3. Once all the folders are gone, delete the original non-Zip archives. (The folders will only vanish after the zip archives have been tested)

I haven't had a chance to check whether this works in Nautilus yet, but it should.

To convert a WinHTTrack-generated library of saved websites into ZIPs for easy archival on CDs or DVDs:

  1. cd into the folder where your library is kept
  2. Run this command → for SITE in *.whtt; do "${SITE%.whtt}"; rm -f "$SITE"; done