没有父目录的绝对递归 tar?

没有父目录的绝对递归 tar?

我有一个如下所示的目录结构:

/var/www/website/index.php
/var/www/website/home.php
/var/www/website/whatever.text
/var/www/website/.htaccess
/var/www/website/images/
/var/www/website/images/image1.jpg
/var/www/website/images/image2.jpg

我想递归地压缩网站目录,但不想包含父结构。如果我这样做:

tar -zcvf /tmp/mytar.tar.gz /var/www/website/*

然后,所有文件/var/www/website/在 tar 文件中都有完整的父结构。我能做的唯一方法是:

cd /var/www/website
tar -zcvf /tmp/mytar.tar.gz *

这样,tar 文件中就没有父目录结构了。

是否有可能在无需cd先进入目录的情况下完成我需要的操作?

答案1

GNU tar 有一个-C这样的选项。

-C, --directory=DIR
    change to directory DIR

因此你可以做类似的事情:

tar -C /var/www/website -zcvf /tmp/mytar.tar.gz .

解压(你最终会这么做)是相同的:

tar -C /var/www/website -zxvf /tmp/mytar.tar.gz

相关内容