Hongwei's Diary
Fork me on GitHub

Linux cp/rm/mv强制覆盖

2017-08-18

本文记述Linux下的cp/rm/mv强制覆盖以及在Java中的调用(博客园文章迁移)

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

1. 反斜杠(\)临时取消别名

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

2. unalias 取消别名

注意:这只是临时取消cp的别名,不是永久的

[root@localhost ~]# unalias cp   
[root@localhost ~]# cp filename new/filename
[root@localhost ~]#

3. 修改默认配置文件

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

[root@fz ~]#
[root@fz ~]# alias
alias cdd='cd /home/data/android/'
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@fz 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 让命令生效

4. yes指令+管道 自动输入yes

[root@fz ~]# 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);
}
}
Tags: Linux
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章