解析Linux系统Alias导致覆盖提示的问题


  烈火建站学院(LieHuo.Net)Linux对一些机器进行版本升级,由于以往升级是习惯了备份用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也可以吧,只不过我没有试,机器要用,也就没试了.这问题虽然解决但解决的有些郁闷!

相关内容