通常我们在Linux中执行mv
、cp
命令操作文件时,如果遇到target
文件已存在,那么就会给出提示,是否确认覆盖,从操作安全来说,这个很有必要,因为曾经我就遇到过同事不小心将2.dbf文件覆盖到1.dbf,导致oracle数据丢失的操作。但是如果存在大量的文件,以及递归很深的文件类操作,每个文件都需要确认就有点麻烦了,在Linux中并没有桌面环境那种记住上次选择的操作,所以我们就需要使用如下方式来解决了。
首先,查看mv
或cp
的使用,发现使用了-i
参数才会有这种确认操作,看来Linux已经添加了默认的alias
:
[root@localhost ~]# alias alias cp='cp -i' alias egrep='egrep --color' alias fgrep='fgrep --color' alias grep='grep --color' alias l='ls -AFhlt' alias l.='ls -d .* --color=auto' alias lh='l | head' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
方法一
在cp命令前加入\
即可实现。
\cp -rf source target
方法二
将系统默认的alias
注释了。
[root@localhost ~]# vi ~/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' -alias cp='cp -i' +# alias cp='cp -i' alias mv='mv -i'
这种方式虽然也能解决问题,但是如果使用完成后忘记了将其恢复,那么往后有可能会出现cp错文件直接覆盖的问题,所以不太建议第二种。