操作环境
CentOS 7
问题分析
在使用 cp
命令覆盖文件时,即使加了 -f
参数系统仍然会询问是否覆盖,例如:
cp -R -f 1/* 2/ cp: overwrite ‘2/1.txt’?
使用 alias
命令查看别名发现存在如下别名:
alias cp='cp -i'
这就意味着即使我们输入的是 cp
, 但执行时仍然执行的是 cp -i
.
使用 cp --help
查看 cp
命令的帮助文档:
-f, --force if an existing destination file cannot be opened, remove it and try again (this option is ignored when the -n option is also used) -i, --interactive prompt before overwrite (overrides a previous -n option)
从帮助文档可以看到,-i
参数会使系统对每一次覆盖操作都向用户发出提示信息。
解决方案
输入 vi ~/.bashrc
编辑 .bashrc
文件,将其中的 alias cp='cp -i'
用 #
注释掉。
最后,退出当前登陆系统的账户,重新登陆即可。
备注
alias cp='cp -i'
这个别名是一项很重要的安全措施,或许可以在关键时刻阻止我们的误操作,因此,平时还是保留这个别名为好。
EOF