Linux 中 cp -rf 源文件或目录 目标文件或目录,即使加了-f 也是不能强行覆盖的,这时怎么回事的呢?一两个文件很少量的还好说,就输几个yes 进行覆盖,但是要是n多文件怎么办,手动输入也太麻烦了,主要有以下几种解决办法。

方法一

为什么 rm -rf 文件或目录 就可以达到强制的效果呢,即使文件或者目录不存在也不会报错。Linux中有很多常用命令都有 -f -r 等选项参数。
我们输入alias命令,查看Linux系统相关命令的别名,看看系统给cp起了一个什么别名。

alias

结果:

alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mc='. /usr/libexec/mc/mc-wrapper.sh'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

然后可以查看 cp 命令选项 -i 是什么意思,起什么作用:

man cp

详细的参数见文章末尾。这里看看-i什么意思

-i, --interactive无论是否覆盖现存文件都作提示。

原来在覆盖之前会提示,那我们的解决办法也出来了,用unalias cp来解除cp的别名,还原纯净的cp。

unaslias cp
# 这只是临时取消cp的别名,不是永久的
cp -rf src dest
# 这下就行了,就不会提示覆盖了

方法二

输入\cp命令,作用也是取消cp的别名:

\cp -rf src dest

或者直接使用原始 cp 避免使用别名的cp:

/bin/cp  -rf src dest

方法三

使用管道自动输入yes :

# 让管道自动输入一大堆得yes,就可以完成了强行复制了
yes | cp cp -rf src dest

详细参数

Linux 系统 cp 命令详细参数及选项含义:

NAMEcp - 复制文件和目录总览cp [选项] 文件路径cp [选项] 文件...目录POSIX 选项: [-fipRr]GNU 参数(最短形式): [-abdfilprsuvxPR] [-S SUFFIX] [-V {numbered,existing,simple}] [--sparse=WHEN] [--help] [--version] [--]描述cp 复制文件(或者目录等).  可以使用这个命令复制一个文件到一个指定的目的地, 或者复制任意多个文件到一个目的目录目录.如果最后一个命令参数为一个已经存在的目录名, cp 会将每一个源 文件 复制到那个目录下(维持原文件名).  如果所给的参数只有两个文件名.它把前一个文件复制到后一个文件上.  如果最后一个参数不是文件名,目录名,和给出多于两个非选项参数,是 错误的.(因而:如果/b已经存在,那么'cp -r /a /b'会复制/a到/b而成为/b/a.  而复制/a/x到/b而成为/b/a/x.但如果/b事先不存在,它会把/a复制为/b 而复制/a/x到/b而成为/b/a/x.但如果/b事先不存在,它会把/a复制为/b 而把/a/x复制为/b/x.)所创建的文件和/或目录的模式和原始的文件的模式是一样的, 然后用用户umask值修改(除非使用了-p选项),(但在递归方式 复制目录时,新建目录会临时地获得他们的最终模式Ored,连同 S_IRWXU(0700),以便进程能够读、写、查找这些新建的目录.复制文件到其自身时它什么事情都不做(除了可能会生成一条错误信息以外).        当复制到一个现存的不同文件时,系统调用函数       `open(path,O_WRONLY|O_TRUNC)'打开目的文件.当复制到一个新文件时,系       统调用函数`open(path,O_WRONLY|O_CREAT,mode)'创建该文件.如果这操作失败,该文件存在,和给出了-f选项, cp 试图先删除该现存文件,如果删除成功则把它当做一个新文件处理.POSIX 选项POSIX 识别四个半选项:-f     如果需要,删除已存在的目的文件.(如前所述.)-i     提示是否覆盖现有普通目标文件。 (在标准出错上显示问题,从标准输入读取答案.只有明确确认了才复制文件.)-p     保留原文件的所有者、组、权限(包括 setuid 和 setgid 位), 上次修改时间和上次访问时间。如果制作所有者或组信息的副本时出错, 则 setuid 和 setgid 位被清空。 (要不然源文件和副本的上次访问时间显然是不同的, 因为复制操作就是对源文件的访问.)-R     递归复制目录,如果对象不是普通文件或目录那么做相应正 确处理,(因此,一个 FIFO或者特殊文件在复制后仍然是一 个 FIFO型或者相应特殊文件。)-r     递归复制目录,如果对象不是普通文件或目录那么做一些未 声明处理.(因此,我们允许并鼓励用 -r 选项做 -R 的 同义词.不过那些愚蠢的特征,象那些在 GNU 版本的 cp 出 现的(见下文)也可以用.)GNU 细节通常,读写文件的方式都是一样的.例外情况见下面的 --sparse 选项.缺省情况下,`cp'并不复制目录(参见下文 -r 选项说明).cp 通常不会复制文件到自身,但有以下例外: 如果参数 --force --backup 与 源文件 一起给出,并且与 目的文件 并且指向一个普通文件, cp 将生成一个备份文件,不是普通的就是编了号的,就象通 常的方法那样声明.在你仅仅想对已有的文件进行备份, 而又不想修改它的时候很有用.GNU 选项-a, --archive复制时,尽可能保持文件的结构和属性.(但不保持目录 结构)等同于 -dpR。-d, --no-dereference复制符号链接作为符号链接而不是复制它指向的文件, 并且保护在副本中原文件之间的硬链接.-f, --force删除存在的目标文件。 (较:原译文缺下面的部分)-i, --interactive无论是否覆盖现存文件都作提示。-l, --link制作硬链接代替非目录拷贝。-p, --preserve保持原始文件的所有者,组,许可,和时间表属性。-P, --parents一个斜杠和指定的源文件名构成目的文件。 最后送给 cp 的参数必须是一个已存在的目录的名字。例如, 下面这个命令:cp --parents a/b/c existing_dir复制文件 `a/b/c' 到 texisting_dir(现有的目录)/a/b/c',建立任 何缺少的中间目录。-r     递归地复制目录,复制任何非目录和非符号链接(那是,    FIFOs和特别文件)好象他们是常规的文件一样看待.这    意味着尝试读出每个源文件的数据,和把它写到目的地    上.因而,用这个选项,cp'可能彻底地终止,当不确定地    读一个FIFO或者/dev/tty时,(这是一个缺陷.它意味着如果你不知道在这棵树(目录)中有什么要复制的时候, 你不得不避开-r并使用-R打开一个未知的设备文件, 比如说一台扫描仪,会有未知的效果发生在硬件上)-R, --recursive递归地复制目录,保留非目录(参见上面的 -r ).--sparse=WHEN一个稀疏file'包容`holes'-占用0字节,它不占用任何 物理块;系统把他们作为0调用read'来读.由于许多二进 制文件包容许多连续的0字节,这样能保存相当的磁盘空 间并且加快速度.省缺情况下, cp 通过自然的启发方式发现在源文件里holes并且使相关 的输出文件稀疏.WHEN 值能够是下面中的一个:auto   默认的行为:如果输入文件是稀疏的,输出文件也是稀疏的.always 总是使输出文件稀疏.当输入文件所在的文件系统不支 持稀疏文件的时候,这是有用的,但是输出文件所在的 文件系统需要(支持稀疏文件).never  从不使输出文件稀疏.如果你找到一个需要此选项的应 用程序,让我们知道.-s, --symbolic-link生成符号链接代替非目录拷贝.所有的源文件名必须是 绝对的(由`/'开始),除非目的文件是在当前目录.这选 项仅仅在系统不支持符号链接时引起一个错误消息.-u, --update如果存在的目的地有相同的,或者更新的修改时间,不 复制非目录(文件).-v, --verbose在复制前印出文件名.-x, --one-file-system跳过来自不同文件系统的子目录.
GNU 备份选项GNU 版本程序象 cp, mv, ln, install 和 patch 会在覆盖,改变,或者破坏(文件)前生成一个备份文件.  那个文件由-b选项给出.他们的由-V选项命名.一般 情况下备份文件名是源文件名加上后缀,这个后缀由-S 指定.-b, --backup生成关于覆盖和删除的备份.-S SUFFIX, --suffix=SUFFIX加入 SUFFIX(后缀) 到每个备份文件.  如果不指定,使用 SIMPLE_BACKUP_SUFFIX 环境变量的值.如果连 SIMPLE_BACKUP_SUFFIX 都没有设置,省缺是`~'.-V METHOD, --version-control=METHOD指定如何命名备份文件.  METHOD 能够是 `numbered' (or `t'), `existing' (or `nil'), or `never' (or `simple').  如果不指定,使用 VERSION_CONTROL 环境变量的值.如果 VERSION_CONTROL 也没有设置,省缺备份文件类型是 `existing'.这选项相应Emacs 变量 `version-control'.  有效的 METHODs 是(接受唯一的缩写):t, numbered总是产生编号的备份。nil, existingMake numbered backups of files that already have them, simple backups of the others.never, simple总作简单的备份.GNU 标准选项-Z     将目标文件 SELinux 安全上下文设置为默认类型--context[=CTX]类似 -Z,或者如果给定了上下文(CTX)那么将 SELinux 或者 SMACK 安全上下文设置为给定值--help 印出用法并退出.--version印出版本信息并退出.--     结束选项列表.环境(参数)变量LANG,LC_ALL,LC_COLLATE,LC_CTYPE和LC_MESSAGES有通常意义.  对于GNU版本,变量SIMPLE_BACKUP_SUFFIX和VERSION_CONTROL控制备份 文件命名.与上面的描述一样.适用到POSIX 1003.2注意这份 cp 的描述和FILEUTils-4.0中找到的是一样的;另外的版 本也许有些微的差别.修正和新增邮到aeb@cwi.nl.  报告缺陷到fileutils-bugs@gnu.ai.mit.edu.

天苍苍野茫茫~

Linux cp 复制文件强制覆盖的用法相关推荐

  1. linux cp复制文件夹下的软连接,Linux培训:cp命令复制文件和目录

    Linux培训:cp命令复制文件和目录 更新时间:2019年04月02日16时56分 来源:传智播客linux培训 浏览次数: cp 是用于复制的命令,其基本信息如下: 命令名称:cp: 英文原意:c ...

  2. linux里强制覆盖,Linux cp命令无法强制覆盖

    在Linux系统里面,使用cp可以拷贝文件, 遇到覆盖的文件会提示是否覆盖, 这是出于安全考虑. 但是如果我们明知需要覆盖并且需要拷贝多个文件或目录的时候,只能单条操作,比较麻烦. cp参数 查看cp ...

  3. Linux cp命令无法强制覆盖

    在Linux系统里面,使用cp可以拷贝文件, 遇到覆盖的文件会提示是否覆盖, 这是出于安全考虑. 但是如果我们明知需要覆盖并且需要拷贝多个文件或目录的时候,只能单条操作,比较麻烦. cp参数 查看cp ...

  4. Linux cp复制文件或文件夹

    cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录.它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下.cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文 ...

  5. Linux cp 复制文件或复制文件夹

    命令格式: cp [option] Source Directory 常用选项: cp命令中有一个常用选项R,它可以递归的复制目录中的所有文件 参数说明: Source:要复制的源文件 Directo ...

  6. delphi 复制文件 强制覆盖_网传美国选这三家中国橱柜企业为反倾销强制应诉人...

    6月5日,据网友"反倾销-AntiDumping"反映,美国商务部在针对来自中国橱柜和浴室柜产品的反倾销调查中,挑选了三家中国企业作为强制应诉人和反补贴调查强制应诉人.据该网友透露 ...

  7. Linux CentOS  复制文件、替换文件 cp 复制文件、cp 覆盖文件 cp替换文件

    Linux CentOS  复制文件.替换文件 cp 复制文件.cp 覆盖文件 cp替换文件 一.Linux 复制文件语法 1. cp [option] src dest 2. option 可选参数 ...

  8. linux命令 复制文件夹命令行,(转)每天一个linux命令(8):cp 命令,复制文件和文件夹...

    场景:自动部署脚本中为了部署方便,将配置文件放在服务器端,每次部署都使用服务端的配置文件覆盖上传上去的配置文件. cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一. 一般情况下,she ...

  9. linux cp 一个文件复制多份

    linux cp 一个文件复制多份 要问我这样做有什么用呢? 比如说现在我要做的对自己的多线程并发迁移数据功能进行测试.需要模拟y用户环境,得到许多大文件. 直接使用cp命令与xargs命令结合 ec ...

  10. Linux 之复制文件或目录(copy)

    一.复制文件或目录   --cp 1.1.概述 CP(1) General Commands Manual CP(1)NAMEcp - 复制文件和目录总览cp [选项] 文件路径cp [选项] 文件. ...

最新文章

  1. 微型计算机接口与技术期末,微机原理与接口技术期末考试试题及答案.pdf
  2. 做食品检测1年,自学软件测试,最后心惊胆战转行
  3. windows server 2012 动态访问控制
  4. CXF 中使用 wsdl2java 示例
  5. 验后方差估计python,python的哪个统计模块支持事后检验(Tukey,Scheffe或其他)的一种方差分析?...
  6. python自动化运维之路~DAY2
  7. 内存卡 无法格式化 修复命令
  8. kali中rarcrack命令爆破rar压缩包密码
  9. 逍遥模拟器获取服务器信息出错,逍遥模拟器不能连上网怎么办?两招解决问题...
  10. vue3 - 23.h函数 / 函数式编程
  11. 浙江大学ACM俱乐部 1036:镂空三角形
  12. 简要分析“区块链+物联网”有哪些坎?
  13. js强制保留两位小数
  14. HTML(Basic) Chapter4(Pink) 综合案例小米商城产品模块
  15. C++ —— 类的使用
  16. 英语语法篇 - 从句
  17. 巴特沃夫 c语言,全相位滤波器在人工耳蜗CIS方案中的应用
  18. 论文精度与分析:Inception V1: Going Deeper with Convolutions
  19. 木材防霉剂预防木材发霉方法
  20. 泰勒公式的介绍、应用及常见题型

热门文章

  1. redis数据一致性
  2. 分辨率和比例尺换算 resolution/scale
  3. 谷歌浏览器无法翻译此网页的解决办法
  4. excel怎么打钩(excel怎么打钩符号)
  5. linux启动盘无法格式化u盘启动盘,U盘做了启动盘后无法格式化怎么办实测解决...
  6. 跨浏览器书签导入实例演示,更好的管理书签!
  7. 说说 title 和 alt 属性有什么区别?
  8. 资产配置那些事-标准普尔家庭资产象限图
  9. 打印纸张尺寸换算_常用纸张的尺寸大小对照表
  10. win7 IE11下,无法通过Windows更新为其他微软产品获取更新