我们在使用linux操作系统时,经常需要覆盖升级一些软件,比如phpmyadmin,文件很多,复制时一直提示是否覆盖,按Y按的手的麻了,如何让cp命令复制文件的时候,不提示这些呢?
首先,我们想到的是,使用cp -rf 中的-f参数,顾名思义,-f肯定是强制覆盖不提示了,但奇怪的是,使用-f的参数,还是提示上面的内容。
什么原因呢,很简单,很多linux发行版,例如CentOS,会把部分命令起一个别名,我们看下:
[root@localhost ~]# 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的别名,-i参数就是提示用户用的。
知道这个,就好办了,我们打开用户家目录的.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
把其中的alias rm=’rm -i’前面添加#来注释掉,然后注销用户再登录系统,应该就行了。
如果你住想这么麻烦,可以直接使用\cp -rf file dir来不提示文件覆盖。例如
[root@localhost ~]# \cp -rf * /mnt/sdb/pma/
这句命令就把当前目录的所有文件复制到/mnt/sdb/pma目录中去了,且不会提示覆盖。
Linux如何让复制文件时不提示Y/N