Linux 中使用 cp -f 命令 依旧提示覆盖的解决办法
Linux 下的 cp 是用来复制的命令,无论是复制单个文件,或者整个文件夹复制,都可以用 cp 命令来实现。有的时候您需要用新的文件覆盖旧的文件,并且希望命令不提示确认 Y/N ;而是直接覆盖,就可以用 -f 这个参数,很多时候 cp 命令加了 -f 后依然提示覆盖,这里解释一下原因和解决的办法。
cp 命令的用法
例如我们需要将当前文件下的 123.txt 文件复制到 /var/files/ 目录下,输入下面的命令列即可:
cp 123.txt /var/files/
如果此时 /var/files/ 目录下已经有了一个123.txt 文件了,那么系统会提示问我们是否覆盖 “123.txt” ,可以输入 y 确认覆盖,或者 n 取消覆盖。

正常情况下,可以使用 -f(强制覆盖参数),然而依旧出现覆盖的提示:

原来 Linux 上别名设置的问题,输入 alias 返回如下,也就是说当你执行 cp 时,其实执行的是 cp –i

解决办法:
方法一:修改 ~/.bashrc 文件禁用掉 cp 的 alias
打开终端输入下面命令,编辑 .bashrc 文件:
vi ~/.bashrc
在 alias cp='cp -i' 前加上“#”注释,重新登录即可实现复制覆盖不提示

方法二:直接输入命令即可实现,用 \cp 代替 cp:
\cp 123.txt /var/files/
\cp 会调用原生 cp 命令不使用别名

发表评论