[root@localhost ~]# cp /root/initial-setup-ks.cfg /tmp/
[root@localhost ~]# cp /root/initial-setup-ks.cfg /tmp/
cp:是否覆盖"/tmp/initial-setup-ks.cfg"?
方法一:
[root@zz ~]# /bin/cp /root/initial-setup-ks.cfg /tmp/
方法二:
[root@zz ~]# unalias cp
[root@zz ~]# cp /root/initial-setup-ks.cfg /tmp/
方法三:
[root@zz ~]# \cp /root/initial-setup-ks.cfg /tmp/
原因:因为cp是一个别名,我们可以用type或alias命令进行查看。
[root@zz ~]# type cp
cp 是 `cp -i' 的别名
[root@zz ~]# alias cp
alias cp='cp -i'
可以看出其中包括参数-i,而-i的作用是启用交互式模式。
因此三个方法的原理分别是:
第一个方法:直接调用了二进制可执行文件,绕过Shell别名。
第二个方法:取消别名。
第三个方法:绕过Shell别名,\cp的行为与默认的 /bin/cp 一致。
注:其他一些的命令的原理同上,例如:mv = 'mv -i' 、rm = 'rm -i' 、ln = 'ln -i' ......