ZenTAR Win32 Untar Utility

Current Version: 1.01

Introduction

Sometimes when I’m backing up a computer that has a lot of files on it, I tar up the whole thing and copy that instead of the individual files because it’s drastically faster to do. Unfortunately, both the GNU tar utility and other programs capable of reading TAR files such as WinRAR have serious problems (crashes, inefficient disk usage, and so on) when handling ultra-large files… To deal with that I wrote “ZenTar”, a very quick single-purpose utility for untarring large tar archives in a Windows environment.

Update… Er… It seems to be an issue not so much with the utilities, but with Win32 crashing after a certain number of files have been accessed (about a million in my tests). So version 1.01 adds some commands for resuming.

Downloading and Installation

Just download the file and put the included executable anywhere you’d like. The archive “zentar-source” contains the source code and can be deleted if you’re not interested.

zentar.zip (23k)

Usage

The program runs either from the command line or just by clicking on it (it runs the same either way, but if you click on it, it’ll ask you for the input and output info rather than expecting it on the command line). Usage is quite simple:

    zentar f:\location\infile.tar g:\outputdir\

It has a couple limitations including that it doesn’t respect file date/time or owner, and only handles file types 0 (“normal”) and 5 (“directory”), and expects an oldschool (rather than USTAR) header, which means that it only does 100 character filenames. I really wrote this for my own use — to move the contents of one system to another — but if anyone else needs expanded functionality it’s easy to do so. Just contact me if you want that.

Optionally, you can specify that the extraction should start with a specific file (or file prefix). This is the simplest way to resume a crashed session. For example,

    zentar f:\location\infile.tar g:\outputdir\ startat=directory/subdir

…would start at the first file that begins with the string “directory/subdir”. It can be an exact and full file reference, or it can be just the start of the filename. Alternate, you can limit the output to a specific file reference as follows,

    zentar f:\location\infile.tar g:\outputdir\ only=directory/subdir/xxx

…which would only uncompress files starting with or matching “directory/subdir/xxx”.

Revision History

v1.00 – August 9, 2008

  • Original version.

v1.01 – August 10, 2008

  • Added “onlydo” and “startat” options for resuming after crashes or doing partial extractions.
  • Can now breakout cleanly with ESC
  • Runs a little faster (although it takes a bit more memory).

One Comment

  1. Anthony Li wrote:

    Hi thanks for this. I was wondering how I can specify the output directory that has spaces?
    e.g. zentar file.tar d:\Games\For Anthony\

    The directory “For Anthony” has a space. Can zentar handle this?

    Friday, September 2, 2011 at 5:02 am | Permalink

One Trackback/Pingback

  1. Shannon Larratt is Zentastic › Untarring on Saturday, August 9, 2008 at 12:28 pm

    […] So I was trying to untar a large archive — a time consuming process — and had the problem that the laptop was going to sleep while I was doing it. I don’t seem to be able to completely turn off the hibernation settings on this machine, so below is my solution as to a DIY mouse jiggler. Unfortunately I discovered that even with this the process crashed (both in GNU tar and WinRAR), presumably because those programs were never designed/tested with ultra-large archives in mind… Which to be honest is a little surprising! Anyway, I can’t imagine anyone else needs it (although it includes source code, so maybe that’s more useful), but for posterity I posted my own untar utility for Windows. […]

Wow Shannon, that's really annoying! What is it, 1997 on Geocities? Retroweb is NOT cool!

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*