我目前正在为我们的服务器编写一个自动备份脚本.我在脚本中使用UNIX tar命令来存档代码存储库.
在我的PERL脚本中,我使用tar命令,如下所示:
system("tar -jcpf $destPath/$string.tar.bz2 -X $exclusionFile $targetPath");
Run Code Online (Sandbox Code Playgroud)
我想在提取tar存档时保留文件所有权.我试图列出tar存档内容
tar -jtvf
Run Code Online (Sandbox Code Playgroud)
并且列表包含每个文件的正确文件所有权,但在提取存档时,文件所有权将更改为当前用户.
有没有办法提取tar存档并保留每个文件的原始文件所有权?
dev*_*ull 13
--same-owner在提取时提供tar 选项.
tar --help 讲述:
--same-owner
create extracted files with the same ownership
Run Code Online (Sandbox Code Playgroud)
您希望在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,
Run Code Online (Sandbox Code Playgroud)
许多POSIX系统也出货pax,cpio可以作为替代品tar.