在 Linux 终端中同步或覆盖更新文件时,使用 cp -rf dir1/* dir2/ 经常会遇到系统疯狂弹出 cp: overwrite 'file'? (y/n) 确认提示,即使用了 -f 强制参数也无济于事。本文解释该现象的根源并提供优雅解法。
一、 为什么加了 -f 依然会提示确认?
大多数 Linux 发行版(Ubuntu、CentOS、Debian)在 ~/.bashrc 中默认给 cp 命令设置了别名(Alias):
alias cp='cp -i'参数 -i(interactive)代表交互模式,无论命令行是否指定 -f,别名中的 -i 优先级依然会导致每次覆盖触发询问。
二、 真正一键静默覆盖的 3 种解法
解法 1:使用反斜杠转义(最推荐,单次生效)
\cp -rf /source/dir/. /target/dir/解法 2:使用绝对路径调用
/bin/cp -rf /source/dir/. /target/dir/