如何在使用tar时保持文件所有权

时间:2013-06-24 10:56:34

标签: perl unix tar

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

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

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

我想在提取tar档案时保留文件所有权。我试图用

列出tar存档内容
tar -jtvf

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

有没有办法提取tar存档并保留每个文件的原始文件所有权?

2 个答案:

答案 0 :(得分:13)

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

tar --help告诉:

   --same-owner
          create extracted files with the same ownership

答案 1 :(得分: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的替代品。