Linux 基础教程

Linux 参考手册

Linux 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/linux-force-cp-to-overwrite-without-confirmation.html

linux cp 复制命令强制覆盖不提示的方法

linux cp 复制命令用法详解 linux cp 复制命令用法详解


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

 

cp 命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下 ...
cp 命令目标目录不存在时,如何自动递归创建不存在的子目录或者叫父目录?如 cp -? file /path/to/copy/file/to ...
Linux 的 date 命令用来显示或设置系统的时间和日期。它主要用于通过时间日期格式化的转换,为一些脚本任务提供时间日期的数据。 ...
lsblk 命令用于列出所有可用块设备的信息,而且还能显示它们之间的依赖关系,但是它不会列出 RAM 盘的信息。块设备有硬盘,闪存盘,CD- ...
Linux tac 命令连接多个文件并以行为单位,从指定文件的最后一行往前打印内容,直到第一行。 ...