一、问题描述
由上图可知,将文件r1.txt拷贝当前目录并命名为r2.txt,因为当前目录下已存在r2.txt,所以复制将会提醒覆盖,
所以就使用了cp中的-f选项,意思为强制覆盖,不与用户交互,但是还是提醒了是否覆盖的提示。
二、问题分析
由上图可知:使用查看别名的命令alias命令或type命令,可以看到cp的别名为cp -i。那就是说cp本身就是自带覆盖提醒,就算我们加上-f 的选项,它还是会优先匹配 -i的选项。(此处就算-f和-i,cp命令还是会先匹配-i的选项),所以不管加不加-f都会提醒覆盖!
三、问题解决
那假如覆盖文件我们不想要提醒,要怎么办呢。我们可以用unalias命令取消cp的别名。然后再加-f选项,就不会提示覆盖了。
注意:Linux中最忌讳的就是删除文件了,如果取消-i的选项,那么以后默认使用cp命令,它是不会进行提醒的,建议将cp默认别名选项改成-i。
但是 unalias删除别名并不彻底,重启之后别名又会回来的。
ps:详情请看
alias的用法详解
在linux中,有许多的像cp这种别名的命令,在执行该命令时,也会执行它的选项,比如:rm删除文件,mv剪切文件。在执行非别名中的选项的时候,注意查看是否会匹配其中的别名选项。