Kung Fu Kung Fu

Fujian White Crane Kung Fu

Zope Zope

What I have and am doing with Zope

Photos Photos

Photoalbum, both old and new.

Receptsamlingen Receptsamlingen

In Swedish only. About my "Collection of Recipes" website.

Contact me Contact me

My contact details and how to contact me.

  Mobile version of this page Mobile version of this page


 

ztar - my wrapper on tar -z

ztar, wrapper, tar, gz, tgz, unpack, gzips, -ztvf, gzip, tarred, bash, executable, bin

29th of June 2005

Something I find myself doing very often is to download a .tar.gz or .tgz file that I want to unpack, but only in a subfolder. Some rather annoying gzips aren't collected in one folder so that when you unpack it lots of files are created in the current directory. Do you find yourself often doing this:

 $ tar -ztvf Some-0.x.tar.gz
 Some/file1.txt
 Some/file2.txt
 ...
 Some/file100.txt
 $ tar -zxvf Some-0.x.tar.gz
 Some/file1.txt
 Some/file2.txt
 ...
 Some/file100.txt

Or, in case they the gzip is badly organised:

 $ tar -ztvf Foo-0.y.tar.gz
 file1.txt
 file2.txt
 ...
 file100.txt
 $ mkdir Foo; mv Foo-0.y.tar.gz Foo/; cd Foo/
 $ tar -zxvf Foo-0.y.tar.gz
 file1.txt
 file2.txt
 ...
 file100.txt
 $ cd ..

If you feel that this is too much typing, consider my little (python) script so that you can do this:

 $ ztar Some-0.x.tar.gz
 Some/file1.txt
 Some/file2.txt
 ...
 Some/file100.txt
 $ ztar Foo-0.y.tar.gz
 Not tarred in one single folder. Create a new one?
 Folder: Foo
 Foo/file1.txt
 Foo/file2.txt
 ...
 Foo/file100.txt 

The ztar program is a little Python script that wraps up all of these alternatives and options into one little program. Drawback: you get used to it and all of a sudden it's not there because it's not part of the the standard bash utils.

To make this happen on your Linux system, download the file and make it executable. Stick it in your global or local bin directory and enjoy. Remember, this is not rocket science and it welcomes feedback.


Comment

Jacob - 29th June 2005  [«« Reply to this]
Great idea. Why didn't I think of that?
Ian Bicking - 29th June 2005  [«« Reply to this]
atool does this too, incidentally:

http://www.student.lu.se/~nbi98oli/atool.html
Peter Bengtsson - 30th June 2005   [«« Reply to this]
An interesting way for me to learn. Instead of searching for the existing solution I dabble on one and then people help me find the existing solution. Thank you Ian.
Ng Pheng Siong - 1st July 2005  [«« Reply to this]
$ (mkdir foo; cd foo; tar xovf ../foo-xyz.tgz)

The parens means run all commands in the same shell child process - this makes the "cd" stick for the subsequent "tar".

The shell is for scripting too.
Peter Bengtsson - 1st July 2005   [«« Reply to this]
that only applies if you know that you want to put it in folder.
Anonymous - 1st July 2005  [«« Reply to this]
Another old "copy a directory across filesystems without creating temporary files" trick, back when not everything is under / in a single filesystem...

$ tar cf - this-dir | (cd that-dir; tar xf -)
Peter Bengtsson - 1st July 2005   [«« Reply to this]
the usability of that one is questionably
Peter Bengtsson - 28th July 2005  [«« Reply to this]
here's another one that won't require approval
 
Name:
Email:
hide my email address.

Your email address will be encoded to prevent email-extraction spiders from reading it so you won't get spammed if you decide to show your email address.