16

我目前正在为我们的服务器编写一个自动备份脚本。我在脚本中使用 UNIX tar 命令来归档代码存储库。

在我的 PERL 脚本中,我使用 tar 命令如下:

system("tar -jcpf $destPath/$string.tar.bz2 -X $exclusionFile $targetPath");

我想在提取 tar 存档时保留文件所有权。我试图列出 tar 存档内容

tar -jtvf

并且该列表包含每个文件的正确文件所有权,但是在提取存档时,文件所有权更改为当前用户。

有什么方法可以提取 tar 存档并保留每个文件的原始文件所有权?

4

2 回答 2

14

提取--same-owner时提供 tar选项。

tar --help告诉:

   --same-owner
          create extracted files with the same ownership
于 2013-06-24T11:00:20.033 回答
5

tar -x您希望在使用-p开关时“保留”文件属性。显然,您需要成为 root 才能获得所需的结果。

         -p, --insecure, --preserve-permissions
         (x mode only) Preserve file permissions.  Attempt to restore the
         full permissions, including owner, file modes, file flags and
         ACLs, if available,

许多 POSIX 系统也发布了paxcpio它们可以作为tar.

于 2013-06-24T13:22:41.650 回答