通常情況下使用cp -rf進行文件或者文件夾的管理時一般就不再提醒是否覆蓋。然而在內網的一台機器上使用cp -rf卻提示是否覆蓋。難道和常用的命令不同?
[root@xxxx test]# cp -rf ./files/ ./bak/ cp:是否覆蓋"./bak/files/test.txt"? cp:是否覆蓋"./bak/files/hh.txt"? cp:是否覆蓋"./bak/files/child/child.txt"?
后來發現是別名引起的問題。
[root@xxxx test]# 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命令,其實是執行了cp -i命令的別名,因此無論怎么輸入都提示是否覆蓋。
修改~/.bashrc,在“alias cp='cp -i'”前添加#號注釋后即可。
[root@xxxx test]# vi ~/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' #alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
讓命令生效:
source ~/.bashrc
或者重啟即可。