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

CentOS7下如何复制全部隐藏文件/目录且无需确认直接覆盖目标文件

问题核心原因

  1. CentOS 7系统默认配置了cp命令的别名:alias cp='cp -i',-i参数会强制开启交互覆盖确认,优先级高于-f参数,因此你加-f也无法跳过确认;且cp本身不支持A全量确认的快捷键,所以输入A无效。
  2. 你使用的.*通配符会匹配到.(当前目录)和..(上级目录)两个特殊目录,会导致误复制上级目录的内容,存在风险。

可行解决方法

方案1:直接调用原生cp命令(无需额外工具)

执行命令:

\cp -rf /home/old/{*,.[!.]*} /home/new

说明:

  • 命令开头的\会绕过系统设置的cp别名,直接调用原生二进制文件,不会触发-i的交互提示
  • -r参数递归复制所有子目录和文件,-f参数强制覆盖目标路径已存在的文件
  • {*,.[!.]*}通配符会同时匹配所有非隐藏文件、以及所有不以..开头的隐藏文件,避免误匹配上级目录

方案2:使用rsync命令(更稳妥,推荐)

CentOS 7默认预装rsync,执行命令:

rsync -av /home/old/ /home/new/

说明:

  • -a为归档模式,会自动保留文件权限、所属用户组、修改时间、软链接等属性,递归复制所有内容(自动包含隐藏文件)
  • -v会输出复制进度,方便查看执行状态
  • 注意路径末尾的斜杠不能省略:/home/old/代表复制old目录内的所有内容,不会把old目录本身复制到new目录下

方案3:临时取消cp别名后执行复制

如果后续需要保留cp的交互提示别名,可以先临时取消别名再执行复制:

# 临时取消cp的交互别名
unalias cp
# 执行复制
cp -rf /home/old/{*,.[!.]*} /home/new
# 可选:执行完后恢复默认别名
alias cp='cp -i'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:54:02