Untar Without Top-Level Directory

command linetar

I have a tar (websites.tgz) that contain a bunch of Drupal websites that are tarred up starting with 'htdocs'

I need to untar them into

/local/htdocs/web1
/local/htdocs/web2

and so on. But I cannot place the websites.tgz file in /local and extract downward due to permissions. It is currently in my home directory. How can I untar the contents under /local/htdocs, without including the top-level htdocs directory?

I am trying to avoid having:

/local/htdocs/htdocs/web1
/local/htdocs/htdocs/web2.

Thanks for any help.

Best Answer

You can use the -C option in some tar implementations to specify the base path for extraction. The following will work for your example.

tar -xvz -C /local -f websites.tgz

Or if your tar doesn't have the -z or -C options:

gunzip < websites.tgz | (cd /local && tar xvf -)
Related Question