我目前正在为我们的服务器编写自动备份脚本。我在脚本中使用UNIX tar命令来存档代码存储库。
在我的PERL脚本中,我使用tar命令,如下所示:
system("tar -jcpf $destPath/$string.tar.bz2 -X $exclusionFile $targetPath");
我想在提取tar档案时保留文件所有权。我试图用
列出tar存档内容tar -jtvf
并且列表包含每个文件的正确文件所有权,但在提取存档时,文件所有权将更改为当前用户。
有没有办法提取tar存档并保留每个文件的原始文件所有权?
答案 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系统还提供pax
,cpio
,可以作为tar
的替代品。