我们在常规使用cp命令的时候,如果目标位置已经有该文件,系统会询问我们是否覆盖目标文件,需要输入y来确认。如果文件过多,可能觉得会很麻烦。

我们先来看一下原因:

sly@fskj-u-sly:~$ cp /var/tmp/test.txt /tmp
cp:是否覆盖"/tmp/test.txt"? n
sly@fskj-u-sly:~$ alias cp
alias cp='cp -i'
sly@fskj-u-sly:~$ cp --help |grep -A 1 '\-\-interactive'
  -i, --interactive            prompt before overwrite (overrides a previous -n
                                  option)

我们可以看到,这个cp做了alias,而-i的意思是覆盖前提示。所以我们可以用一下几种方法跳过提示:

sly@fskj-u-sly:~$ \cp /var/tmp/test.txt /tmp        #1.命令前加反斜线可以忽略alias
sly@fskj-u-sly:~$ /bin/cp /var/tmp/test.txt /tmp  #2.使用命令的全路径
sly@fskj-u-sly:~$ unalias cp                                    #3.先取消别名再复制(但不推荐这样做)
sly@fskj-u-sly:~$ cp -n /var/tmp/test.txt /tmp