linux cp实现强制覆盖

说明:
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 来实现强行复制。

发表评论

邮箱地址不会被公开。 必填项已用*标注