【问题标题】:Copy directory and assign destination ownership to directory and contents [closed]复制目录并将目标所有权分配给目录和内容[关闭]
【发布时间】:2022-10-20 00:10:40
【问题描述】:

我正在使用cp -rp 命令复制目录/test 保留目标所有权,如下所示:

cp -rp /home/test/ /home/user/public_html/

正如预期的那样,目录/test 被复制到/home/user/public_html/test,但只有父目录/test 保留了用户目标所有权。 /test 中的所有其他文件都具有 root:root 所有权:组。

我还尝试了-a 选项:

cp -a /home/test/ /home/user/public_html/

但问题仍然存在。

我该怎么做/test 中的所有文件和子目录也具有目标所有权,而不仅仅是/test

【问题讨论】:

  • 我不清楚您要达到什么目的,以及所描述的场景与您的大多数标签有什么关系。如果标签并不真正适用(您不是在开发设备驱动程序),那么问题就离题了,因为它不是编程问题。
  • @tink 你能帮忙吗?
  • 如果我能理解您在编程方面试图解决的实际问题是什么,也许?我发现问题与您应用的大多数标签之间没有相关性。

标签: linux unix


【解决方案1】:

我不能评论这个问题,但它也可以作为一个答案。你可以使用rsync吗?在其默认状态下,它将复制文件但不更改目标权限。如果您想保留源权限,可以使用 -p 标志。请注意,您需要组合标志来管理递归复制等。

https://linux.die.net/man/1/rsync

【讨论】:

  • 我使用rsync -a /home/test /home/user/public_html 并且实际上只有复制的目录/home/user/public_html/test/ 结果具有目标所有权,其子文件夹和内部文件仍然具有root:root 所有权......知道为什么吗?
  • 如果它们是新添加的文件,那么它们将始终具有源所有权。在您的情况下,使用 -a 标志使 rsync 功能具有各种标志,包括保留源权限的 -p 标志。检查手册页以获取正确的列表,但我认为 -a 相当于 -rlptgoD。您需要将 rsync -a 替换为 rsync -rltgoD 以获得与 -a 相同的效果,但没有源权限功能。 !
  • @sea003 我试过rsync -rltgoD /home/test /home/user/public_html 仍然只有/home/user/public_html/test 有目标所有权但没有它的内容,内容有源所有权,还有其他想法吗???
  • 谢谢大家,用chmod -R --reference=some-file命令完成
猜你喜欢
  • 2012-03-17
  • 2015-05-29
  • 2012-07-24
  • 2015-05-24
  • 2013-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多