<问题提出原因>
在应用更新的时候,用cp
命令去覆盖目录下面的文件,总是会要求一个个文件去确认。有时候前端文件包有几千个文件,但是开发提供的不是全量包,这个时候就需要用cp -rf
命令强制覆盖。
但是实际操作的时候发现并不管用,原因是cp
被设置了别名
<问题解决方法>
直接说结论,有三种做法
<方法一>直接用bin
目录下的cp
which cp #查看cp所在目录
/bin/cp -rf aaa bbb
<方法二>前面加"\"
\cp -rf aaa bbb
<方法三>取消别名
unalias cp #取消别名
cp -rf aaa bbb
alias cp='cp -i' #操作后恢复别名
<延伸学习>
alias
别名有一些是被系统定义的,可以通过alias
命令查看。
[root@suplicstore wls12.2.1.4]# 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'
我们自己也可以通过alias [name[=value]]
格式自定义别名,比如alias vi='vim'
,让一些常用的参数不用重复输入或者复杂的命令变短。另外如果想删除别名,也可以用unalias
命令来操作,比如unalias vi
。
但是存在的问题是我们输入的alias
命令只是生效于当前窗口(shell),系统重启或者开启新的窗口后我们自定义的alias
就失效了。如何让alias
命令在系统重启或者开启新窗口后仍然可用呢?需要修改环境变量。