背景说明
在进行cp拷贝文件的时候,想要进行强制覆盖,但是发现即使指定-f参数,还是进行提示。
[root@dciuap7 ~]# cp anaconda-ks.cfg ./a/
cp: overwrite ‘./a/anaconda-ks.cfg’? y
[root@dciuap7 ~]# cp -f anaconda-ks.cfg ./a/
cp: overwrite ‘./a/anaconda-ks.cfg’? y
分析
经过检查发现,直接使用的cp命令,其实是cp -i的别名。
执行以下的命令
[root@dciuap7 ~]# alias cp
alias cp='cp -i'
也就是说,直接使用cp就相当于带了-i的参数,也就是进行提示的意思。
cp -i参数的含义:
-i, --interactive prompt before overwrite (overrides a previous -n option) #就是在覆盖之前要进行提示。
处理方法
使用cp的绝对路径加-f参数
[root@dciuap7 ~]# which cp
alias cp='cp -i'
/usr/bin/cp
[root@dciuap7 ~]# /usr/bin/cp -f anaconda-ks.cfg ./a/
这样拷贝文件的时候,使用的就是不带-i参数的cp命令,所以-f也就进行了强制的覆盖。