59

如何将 tarball 中的子目录提取到当前目录中?

例如,来自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
...

如何将所有内容提取wordpress/到当前目录中?换句话说,它不会创建wordpress目录。

我试过这个没有运气:

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

我知道我可以正常提取它并将其移回,但我认为必须有一种方法可以一次性完成。

4

2 回答 2

109

你为什么不正常解压,然后只是:

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

但很可惜,有:

tar --strip-components=1 -zxvf wordpress.tgz
于 2009-05-10T16:19:31.830 回答
6

令人惊讶的是,我的tar(GNU tar v1.16)没有删除初始路径名元素的选项。

但是,似乎更新的版本带有一个--strip-components=number参数,它将从路径的开头剥离那么多组件。

如果像我一样,您使用的是较旧的tar,并且您确定存档不包含名为 的目录或文件wordpress/wordpress,您总是可以从wordpressto创建一个符号链接.,然后像往常一样提取:

ln -s . wordpress
tar xvfz latest.tar.gz wordpress
rm wordpress
于 2009-05-10T16:30:25.250 回答