前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下如何使cp命令不提示覆盖文件 原

Linux下如何使cp命令不提示覆盖文件 原

作者头像
donghui
发布2019-04-19 15:38:17
8.2K0
发布2019-04-19 15:38:17
举报
文章被收录于专栏:donghui的博客donghui的博客

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

代码语言:javascript
复制
cp -f file dir

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

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

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

可以执行alias命令查看下:

代码语言:javascript
复制
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命令得到),如

代码语言:javascript
复制
/bin/cp -f file dir

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

代码语言:javascript
复制
 \cp -f file dir

3.在~/.bashrc里面注释掉 Alias cp='cp -i' 4.unalias cp ,然后再使用cp,但使用后还原alias cp='cp -i'

参考:

http://www.myexception.cn/linux-unix/446791.html

http://www.php100.com/html/webkaifa/Linux/2010/0525/6409.html

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014/08/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档