`sudo tar` 但拥有生成的文件

`sudo tar` 但拥有生成的文件

我想将一堆文件放入一个带有tar.但是,我没有访问所有这些的权限,所以我必须这样做sudo tar

但是,现在root已经运行了tar,生成的存档也归 root 所有,我必须更改 的权限.tar.gz,这有点乏味。

难道没有sudo某种“部分”可以告诉tar使用权以 root 身份创建文件,但以我身份创建文件?

答案1

您可以利用一个经常让人烦恼或惊讶的事实,即重定向发生在 shell 中并且不受 sudo 的影响。

使用-(aka /dev/stdout) 作为文件名,然后将输出重定向到您选择的文件名。它将归您所有,并使用您的默认权限(由 定义umask)创建。

sudo tar czf - [more options and file/dir names] > myfile.tar.gz

重定向以您的 UID 进行,而其tar本身以 root 身份运行。

相关内容