Question

How to I extract a subdirectory in a tarball into the current directory?

Example, the tarball from wordpress:

wordpress/
wordpress/wp-trackback.php
wordpress/wp-config-sample.php
wordpress/wp-settings.php
wordpress/wp-rss2.php
wordpress/readme.html
wordpress/index.php
...

How do I extract everything under wordpress/ into the current directory? In otherwords, it will not create a wordpress directory.

I've tried this with no luck:

tar xvfz latest.tar.gz wordpress -C ./

I know I can extract it normally and move it back, but I figure there has to be a way to do it in one shot.

Was it helpful?

Solution

Why don't you untar normally, then just:

mv wordpress/.* .
mv wordpress/* .
rmdir wordpress

But alas, there's:

tar --strip-components=1 -zxvf wordpress.tgz

OTHER TIPS

Surprisingly, my tar (GNU tar v1.16) doesn't have an option to strip initial pathname elements.

However, it seems that more recent versions sport a --strip-components=number parameter, which will strip that many compononents from the start of the path.

If like me you are using an older tar, and you are certain that the archive does not contain a directory or file named wordpress/wordpress, you could always just make a symlink from wordpress to ., then extract as usual:

ln -s . wordpress
tar xvfz latest.tar.gz wordpress
rm wordpress
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top