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
包含其内容。