![在 tar 中保留整个文件夹层次结构的所有权?](https://linux22.com/image/133674/%E5%9C%A8%20tar%20%E4%B8%AD%E4%BF%9D%E7%95%99%E6%95%B4%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%E5%B1%82%E6%AC%A1%E7%BB%93%E6%9E%84%E7%9A%84%E6%89%80%E6%9C%89%E6%9D%83%EF%BC%9F.png)
folderB
在创建和提取 tar 文件时,我可以保留其中的所有文件和文件夹的所有权,如下所示:
tar -cpf out.tar folderA/folderB
sudo tar -xpf out.tar --same-owner
但是,folderA
解压时由 root 拥有,除非该文件夹已存在。有没有办法用 tar 保留整个文件夹层次结构的所有权?
答案1
发生这种情况是因为
tar -cpf out.tar folderA/folderB
不folderA
作为单独的对象存储在 tarball 中,因此它没有任何方式记录folderA
.
为了保留所有权,您需要tar
在创建 tarball 时告知这样做;至少对于 GNU tar
,可以执行以下操作:
tar -cpf out.tar --no-recursion folderA --recursion folderA/folderB
它存储folderA
(及其权限等)而不递归,并folderA/folderB
包含其内容。