写shell脚本文件时,如何避免cp文件时有同名文件的提示呢?这道题会告诉大家为什么?
当前目录下有文件quesiton/test,从root文件夹复制test文件到文件夹question,让其直接覆盖但是不进行任何的提示。
首先我们按照正常的操作来看:
[root@localhost ~]#
[root@localhost ~]# pwd
/root
[root@localhost ~]# cp test /root/question/test
cp: overwrite `/root/question/test'? n
会有voerwrite的提示,原因是什么呢?
···
[root@localhost ~]# alias | grep cp
alias cp='cp -i'
原来Linux担心我们会不小心错误的覆盖文件,通过别名把cp 改成了cp -i 让我们覆盖前确认,我们怎样取消这个限制呢,在shell脚本中我们可以通过两种方式避免该问题。
1. 使用cp的全路径
2. 使用反斜线
[root@localhost ~]# which cp
alias cp='cp -i'
/bin/cp
[root@localhost ~]# /bin/cp test /root/question/test
[root@localhost ~]#
[root@localhost ~]#
or
[root@localhost ~]# \cp test /root/question/test
以上两种方法都能避开此问题,你现在知道了吗?