博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux下如何使cp命令不提示覆盖文件
阅读量:6219 次
发布时间:2019-06-21

本文共 851 字,大约阅读时间需要 2 分钟。

  hot3.png

在Linux下,如果希望将文件file拷贝到目录dir下,可以执行:cp file dir

但如果dir下已经存在一个名为file的文件的时候,系统总是会提示是否覆盖file。
这是一个很好的功能,它能够防止我们由于疏忽对系统造成的损害,但如果不希望看到这些交互的提示信息呢?比如我们需要写一个脚本,将某些文件安装到指定的目录下,这时我们肯定不希望看到提示。
可以试一下 -f 选项,-f 一般表示强制执行(force)。

cp -f file dir

但好像结果并不像我们希望的那样,系统依然会有覆盖提示。为什么呢?
原因很简单,系统将cp命令alias为cp -i

当我们执行cp命令的时候,系统往往执行的是cp -i,-i 选项表示有交互的提示信息,

所以执行cp -f的时候,系统实际执行的是cp -i -f,所以仍然会有覆盖提示。

可以执行alias命令查看下:

alias cp='cp -i'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 which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

想要执行原始的cp也很简单:
1.在调用cp的时候加入绝对路径(可通过whereis cp命令得到),如

/bin/cp -f file dir

2.通过直接执行下面的语句调用系统原始的命令:

 \cp -f file dir

3.在~/.bashrc里面注释掉 Alias cp='cp -i'

4.unalias cp ,然后再使用cp,但使用后还原alias cp='cp -i'

参考:

转载于:https://my.oschina.net/donhui/blog/307386

你可能感兴趣的文章
[20170703]ora-12516 ora-12514 rac.txt
查看>>
SQL 2008执行语句遇到内存不足(1)——error 701
查看>>
Sphinx
查看>>
【Spring】Spring常用配置-事件(Application Event)
查看>>
Git是个好工具(转)
查看>>
ffmpeg处理RTMP流媒体的命令大全
查看>>
OpenCV轮廓检测,计算物体旋转角度
查看>>
VSS
查看>>
【转载】CodePipeline联动容器的DevOps实践
查看>>
Al x 量化:智能投顾如何解决金融机构财富管理业务的痛点?
查看>>
innodb重做日志缓冲
查看>>
大数据系列之大数据分析如何权衡存储
查看>>
软件系统开发的过程是怎么样的?分为几个步骤?
查看>>
Spark-Spark Streaming例子整理(一)
查看>>
projecteuler_problem2
查看>>
10大托管国家和5大危险电子邮件主题
查看>>
基于对偶学习的跨领域图片描述生成
查看>>
Docker收购SDN技术创业公司SocketPlane
查看>>
WCF技术剖析之十二:数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)...
查看>>
深入剖析 iLBC 编码器原理
查看>>