You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用cp命令复制目录时,如何让所有文件及子目录继承目标所有权?

解决复制目录后所有文件继承目标所有权的问题

问题原因

你使用的cp -rp或cp -a命令中的-p(-a包含-p)参数作用是保留源文件的权限、所有权和时间戳。如果源文件的所有权是root:root,复制后文件会继承源的属性;而目标目录/home/user/public_html/test之所以保留目标父目录的所有权,是因为创建新目录时会继承父目录的权限规则(受umask影响),但文件是直接复制源的属性,所以出现仅目录权限正确、文件为root:root的情况。

解决方案

方案1:先复制再批量修改所有权

先不带保留属性的参数复制目录,再用chown递归修改所有权:

# 复制目录(不带-p/-a,避免保留源所有权)
cp -r /home/test/ /home/user/public_html/test
# 递归修改目标目录下所有内容的所有权为目标父目录的所有者(替换为实际的user:group,比如user:user)
chown -R user:user /home/user/public_html/test

方案2:使用rsync一步到位(推荐)

rsync支持直接在复制时指定目标所有权,无需后续修改:

# --chown参数指定复制后所有内容的所有权,替换为实际的user:group
rsync -r --chown=user:user /home/test/ /home/user/public_html/test

如果需要保留源文件的权限(仅修改所有权),可以加上-p参数:

rsync -rp --chown=user:user /home/test/ /home/user/public_html/test

内容的提问来源于stack exchange,提问作者karlosuccess

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 23:50:32