默認情況下,cp覆蓋時,無論加什麼參數 -f 之類的 還是提示是否覆蓋。
原因是:服務器會默認增加別名 alias cp=’cp -i’,當你執行cp時,其實執行的是cp –i。
[root@ltt01 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
cp 時取消提示信息,直接覆蓋,不需要用戶再敲擊 y 進行交互,這在腳本執行時很重要。
下面是兩種做法解決這個問題。
方法一:將別名禁掉
[root@ltt01 ~]# vi ~/.bashrc
在alias cp=’cp -i’前加上”#”註釋掉這行,:wq! 保存退出,然後重新登陸就可以了。
方法二:cp 前 加 \
[root@ltt01 ~]# \cp 1.txt /back/1.txt
[root@ltt01 ~]#