今天在使用 cp 命令复制文件时,使用了 -f 命令参数,它表示“ 强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者 ”。可实际存在目标文件时仍然提示是否需要覆盖。
[root@kayura ~]# cp -rf /root/a/* /root/b/ cp: overwrite `/root/b/29zZ.file'? y cp: overwrite `/root/b/503h.file'? y cp: overwrite `/root/b/Aqi5.file'? y cp: overwrite `/root/b/AQsz.file'? y cp: overwrite `/root/b/BuU4.file'? y
发现在 /root/ 目录下有一个叫 .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
原来直接使用的 cp 命令实际执行的是“ cp -i “,注意 -i 参数是:“ 若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作 ”,不仅 cp 命令,rm mv 命令都被加上了 -i 参数,想必是怕操作者有误操作的行为吧。
那希望正常的使用 -f 参数命令怎么做?
这里有四种方法:
1、注释掉 ~/.bashrc 文件里的别名
2、在使用命令前添加 \ ,将不会使用别名命令,如: \cp -rf /root/a/* /root/b/
3、直接使用命令的绝对路径,如: /usr/bin/cp -f
4、临时取消别名: unalias cp
发现了 ~/.bashrc 文件后,是不是可以利用一下?
比如:我想操作这些命令时默认就支持操作文件夹,那就在命令后添加 -r 参数,该参数表示:“ 递归持续复制,用于目录的复制行为 “
# .bashrc # User specific aliases and functions alias rm='rm -r' alias cp='cp -r' alias mv='mv -r' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi