说明:
linux下使用cp -fr src dest,发现即使加了-f也是不能强行覆盖的,这是为什么呢?
原因:
-f其实已经会强制覆盖了,但部份服务器会默认增加别名alias cp=’cp -i’,因此当你执行cp时,其实执行的是cp –i
[root@coolnull]# alias cp alias cp='cp -i' [root@coolnull]# man cp 看看-i什么意思 -i, –interactive prompt before overwrite
原来在覆盖之前会提示,那我们的解决办法也出来了,用unalias cp来解除cp的别名,还原纯净的cp。
解决:
方法一:临时取消cp的别名
[root@coolnull]# unaslias cp #临时取消cp的别名,对当前会话有效,并不是永久的 [root@coolnull]# cp -fr src dest #这下就行了,就不会提示覆盖了。
方法二:输入\cp命令,作用也是取消cp的别名。
[root@coolnull]# \cp -fr src dest
方法三:输入yes|cp -fr src dest,使用管道自动输入yes
[root@coolnull]# yes | cp cp -fr src dest 让管道自动输入一大堆得yes,就可以完成了强行复制了。
附录:
如果是dos,copy命令怎么实现强行复制的呢
用来 xcopy /y src dest 来实现强行复制。