Rsync -> TAR

tim.conway at tim.conway at
Sat Feb 9 07:12:01 EST 2002

What you're talking about would require the ability to address a 
compressed tar the way you do a filesystem, with the ability to seek, 
insert, delete, overwrite.
the nature of stream compression doesn't allow insertions.
you'd have to blow up the tar out of the compression to modify it, and 
even the -u option to some tars, whereby a contained file can be modified, 
involves streaming the tar from the original copy through the changed 
file, inserting the changed file, and streaming the rest of the tar after 
that file, all into a new file, which then replaces the original, much the 
way gzip, compress, lzop, and others do when you apply them to a file.
Most advanced operating systems (and some not-so-advanced (dos, windoze)) 
support transparent compression somewhere below the file APIs.

There was doublefs for linux way back, whereby you mounted a file or 
partition on a sort of a loopback device, and then could treat it as a 
partition, with the kernel handling compression in/out of it.  I'm sure 
there's something like it still around, though disk space is so cheap now 
that it's probably not generating much interest any more.  It sure helped 
me back in 1993, though.
AIX does compressed jfs filesystems, whereby the files themselves live on 
the disk compressed, but the directory reports the uncompressed attributes 
of the file, and it's uncompressed into the vfs manager for access.
Dos had stacker.  Then, when Microsoft found out that people were paying 
for it, they came out with their own version included in the OS.
Now, with Windows 2000 (fairly decent environment, actually... i'm using 
it right now), and maybe earlier NT, you can apply the compressed 
attribute to any object on the filesystem, and it treats files sort of in 
the AIX model.  If you set your destination directory as compressed and 
with inheritance of the compression, the files will take up a lot less 
space.  For instance, I keep the doc from activeperl on my hard drive 
(though i use the perl in cygwin), and i keep it in a compressed 
directory.  It's 7.85Mb, size on disk 4.28.

I hope you don't mind the cc to the rest of the list.  it saves someone 
else from wasting his time telling you the same thing.

If I have a file named 'foo' on the work system and a file named 
'bar.tar.gz' on my home system that contains 'foo', the only way I could 
update 'bar.tar.gz' would be to simply create a new 'bar.tar.gz'?  I was 
hoping there would be a simpler way than this.  The rsync backup size 
right now is near 3 Gigs.

Tim Conway
tim.conway at
Philips Semiconductor - Longmont TC
1880 Industrial Circle, Suite D
Longmont, CO 80501
Available via SameTime Connect within Philips, n9hmg on AIM
perl -e 'print pack(nnnnnnnnnnnn, 
".\n" '
"There are some who call me.... Tim?"

More information about the rsync mailing list