linux 跳过overwrite确认

转载于:https://www.knowledgedict.com/tutorial/linux-force-cp-to-overwrite-without-confirmation.html

Linux cp 复制命令如果想要跳过是否覆盖提示的方法,可以使用强制复制的选项 -f,但是实际使用时,有可能失效,还会一如既往地弹出提示,那是为什么呢?

解决方法


首先说明一下加 -f 选项也会提示的原因是,当前 linux 针对 cp 命令起了一个别名,可以通过 alias 查看:

[knowledgedict@Linux ~]# alias
alias cp='cp -i'
alias rm='rm -i'
alias vi='vim'
...

发现 cp 命令对应了一个别名 cp -i-i 选项强制弹出提示交互信息,所以 -f 参数此时会失效。

了解了原因之后,我们列出了 3 个解决方案

  1. 对别名动手脚;
  2. 命令最前面加反斜杠 \ 即可跳过别名生效范围;
  3. 第三个方法非常骚,通过 yes 命令和管道命令 | 传 y 信息给 cp 命令,达到自动确认的功能。

个人推荐第二种方式,因为绝大数情况下提示信息是有必要的,修改别名会对全局有效,可以针对自身需要局部加反斜杠就可以。

命令前加反斜杠

[knowledgedict@Linux ~]# \cp knowledge.json dict.json

使用 -f 选项(修改 cp 别名,如果必要)

一般别名配置是在 ~/.bashrc 文件,可以直接在 cp 别名行加 # 号禁用,如下:

# alias cp='cp -i'
alias rm='rm -i'
alias vi='vim'
...

设置完后,重新登录即可生效,此时用 -f 选项即可达到强制复制的功能。

[knowledgedict@Linux ~]# cp -f knowledge.json dict.json

yes 命令结合管道命令

通过 yes 命令和管道命令 | 传 y 信息给 cp 命令,达到自动确认的功能:

[knowledgedict@Linux ~]# yes | cp knowledge.json dict.json
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值