[Linux][Shell]cp复制/mv移动的时候不提示直接覆盖-多种解决办法

2021-01-25 1624点热度 0人点赞 0条评论

我们在写 Shell 脚本的时候,cp 复制或mv移动的时候,因为要启用后台运行,想要处理已存在文件的时候,直接覆盖,而不要跳出确认。可是无论是否你加了-f参数,还是会提示是否覆盖。

经研究过后发现,是因为在~/.bashrc 加了如下,-i 是强制提示

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

解决的办法有4个,以cp 为例,其他命令类似

  1. 直接输入命令,在cp前加上\即可实现,例如:
    \cp -fR /tmp/data/* /opt/data/
  2. 利用管道
    yes | cp -fR /tmp/data/* /opt/data/
  3. 复制前把目前文件夹或者里面的内容先删除,例如:
    rm -rf /opt/data/*
    cp -fR /tmp/data/* /opt/data/
  4. 修改 .bashrc文件禁用cp的alias。alias cp='cp -i'前面加『#』注释掉,重新登录即可实现复制不提示

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论