实例解析:Linux之Alias导致覆盖提示问题

来源:微学计算机考试发布时间:2008-06-18
 对一些机器进行版本升级,由于以往升级是习惯了备份用mv im im.bak然后再解一个im包出来,而目前这个升级面临的是部分文件的覆盖,但部分却也不少,有上百个文件,在使用用cp -Rf /home/im/im /usr/local 出现大量是否覆盖?

  于是man cp

  -f, ——force

  if an existing destination file cannot be opened, remove it and try again

  看这里似乎没有提及覆盖不提示,以为用错了命令,于是百度,google了下,发觉还是-f不提示,纳闷了,在同事的提示下说有个别名的问题,于是运行了下alias如下:

  alias cp='cp -i'

  alias l.='ls -d .* ——color=tty'

  alias ll='ls -l ——color=tty'

  alias ls='ls ——color=tty'

  alias mv='mv -i'

  alias rm='rm -i'

  alias which='alias | /usr/bin/which ——tty-only ——read-alias ——show-dot ——show-tilde'

  问题是,就如同事所说是因为这个问题,担使用rm -rf时不也一样不提示,不过man rm

  -f, ——force

  ignore nonexistent files, never prompt

  他倒是有忽略的意思;

  不管了,反正找不到办法先试试先

  编辑root用户/root

  及全局别名,如果想更改某一用户自己使用的别名可以在/home目录下找到自己的目录下执行vi .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 cp='cp -i'注释掉

  运行保存后的。bashrc文件

  source ~/.bashrc

  再执行,cp -Rf /home/im/im /usr/local 也就不提示了,其实这时候不用-f也可以吧,只不过我没有试,机器要用,也就没试了。这问题虽然解决但解决的有些郁闷!