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

Jak*_*son 7 linux 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
Run Code Online (Sandbox Code Playgroud)

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

tar -zcvf /tmp/mytar.tar.gz /var/www/website/*
Run Code Online (Sandbox Code Playgroud)

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

cd /var/www/website
tar -zcvf /tmp/mytar.tar.gz *
Run Code Online (Sandbox Code Playgroud)

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

是否可以在不必先cd进入目录的情况下完成我需要的工作?

Mic*_*ton 17

GNU tar 对此有一个-C选项。

-C, --directory=DIR
    change to directory DIR
Run Code Online (Sandbox Code Playgroud)

所以你可以这样做:

tar -C /var/www/website -zcvf /tmp/mytar.tar.gz .
Run Code Online (Sandbox Code Playgroud)

解压(你最终会这样做)是一样的:

tar -C /var/www/website -zxvf /tmp/mytar.tar.gz
Run Code Online (Sandbox Code Playgroud)