在Linux下,若是但愿将文件file拷贝到目录dir下,能够执行:cp file dir
但若是dir下已经存在一个名为file的文件的时候,系统老是会提示是否覆盖file。
这是一个很好的功能,它可以防止咱们因为疏忽对系统形成的损害,但若是不但愿看到这些交互的提示信息呢?好比咱们须要写一个脚本,将某些文件安装到指定的目录下,这时咱们确定不但愿看到提示。
能够试一下 -f 选项,-f 通常表示强制执行(force)。
php
cp -f file dir
但好像结果并不像咱们但愿的那样,系统依然会有覆盖提示。为何呢?
缘由很简单,系统将cp命令alias为cp -i。
html
当咱们执行cp命令的时候,系统每每执行的是cp -i,-i 选项表示有交互的提示信息,linux
因此执行cp -f的时候,系统实际执行的是cp -i -f,因此仍然会有覆盖提示。
web
能够执行alias命令查看下:
shell
alias cp='cp -i' 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也很简单:
1.在调用cp的时候加入绝对路径(可经过whereis cp命令获得),如bash
/bin/cp -f file dir
2.经过直接执行下面的语句调用系统原始的命令:
spa
\cp -f file dir
3.在~/.bashrc里面注释掉 Alias cp='cp -i'
4.unalias cp ,而后再使用cp,但使用后还原alias cp='cp -i'
unix
参考:code
http://www.myexception.cn/linux-unix/446791.htmlhtm
http://www.php100.com/html/webkaifa/Linux/2010/0525/6409.html