I had to move some files from Unix. File was big, I had small USB drive - one thing led to another...
GZipped tar was obvious solution. In addition to that a friend of mine recommended to also use --sparse argument with it. Theory behind sparse files tells that block of 0 should be saved extremely efficiently thus making my file smaller even before zipping part gets involved. This made my command look like "tar cfzS somefile.tar.gz somefile". It all worked as advertised.
Next day I got to extract this on Windows. My trusty WinRAR had no idea how to proceed. I just got "The archive is corrupt" message. My next efforts went into searching for Win32 version of tar. Since GNU tools like to be small and concentrated, of course this was not sufficient - I needed Win32 GZip also. Notice that I might be wrong here and there might be Win32 tar somewhere with everything integrated - I just haven't found it.
Since (on Win32) extracting this tar.gz needed temporary files, I did it in two steps: first with gzip (
gzip -d < somefile.tar.gz > somefile.tar) and then with tar (
tar xSf somefile.tar). Even with all this, file was just too small.
After testing few more programs I gave up and recreated this archive without --sparse option. It ends up that size difference (with compression on) is not that high after all but final result is much more portable.
Here are tools I used: