在 tar 中保留整个文件夹层次结构的所有权?

在 tar 中保留整个文件夹层次结构的所有权?

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

相关内容