不使用顶级目录解压

不使用顶级目录解压

我有一个 tar (websites.tgz),其中包含一堆以“htdocs”开头的 Drupal 网站

我需要将它们解压到

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

等等。但由于权限问题,我无法将websites.tgz 文件放在/local 中并向下解压。它目前位于我的主目录中。如何解压 /local/htdocs 下的内容,而不包含顶级 htdocs 目录?

我试图避免:

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

谢谢你的帮助。

答案1

您可以-C在某些 tar 实现中使用该选项来指定提取的基本路径。以下内容适用于您的示例。

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

或者,如果您tar没有-z-C选项:

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

答案2

您可能需要使用 GNU tar 的 --strip-components=NUMBER 选项:

--strip-components=NUMBER
  strip NUMBER leading components from file names on extraction

你的命令是:

tar -xfz /path/to/websites.tgz --strip-components=1 -C /local/htdocs/

相关内容