Linux cp/rm/mv 强制覆盖

一、Linux下的cp/rm/mv强制覆盖

(一)、反斜杠(\)临时取消别名

    [root@linuxidc ~]# \cp filename new/filename   
    [root@linuxidc ~]#

(二)、unalias 取消别名

注意:这只是临时取消cp的别名,不是永久的
    [root@localhost ~]# unalias cp   
    [root@localhost ~]# cp filename new/filename   
    [root@localhost ~]#

(三)、修改默认配置文件

  • 输入alias命令,看到系统内部使用的是cp、mv、rm -i 所以怎么输入都是提示覆盖。

   [root@linuxidc ~]#
   [root@linuxidc ~]# alias
   alias cdd='cd /home/data//'
   alias cp='cp -i'
   alias l='ls -la'
   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 tf='tail -f '
   alias vc='vim ~/.bash_profile'
   alias vs='source ~/.bash_profile'
   alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
  • 修改 ~/.bashrc ,在 “alias cp='cp -i' ”前添加`#`号注释后即可。

    [root@linuxidc test]# 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
  • 重启或者执行 source ~/.bashrc 让命令生效

(四)、yes指令+管道 自动输入yes

    [root@linuxidc ~]# yes | cp filename new/filename   
    cp: overwrite `new/filename'? [root@localhost ~]#

二、Java后台调用Linux命令实现

 public void copyIcon() throws IOException, InterruptedException {
          Runtime r = Runtime.getRuntime();
          String cmd_copy = "\\cp -rf temp/AppIcon/*  icon/";    //copy并覆盖
          String[] cmds = new String[]{"sh","-c",cmd_copy};
          Process p = r.exec(cmds);
          int result = p.waitFor();
          if (result == 0){   //表示正常结束
              logger.error("【copy appIcon 成功】");
          }else {
              logger.error("【copy appIcon 失败】"+cmd_copy);
          }
      }

猜你喜欢

转载自www.linuxidc.com/Linux/2017-08/146343.htm