手机版
你好,游客 登录 注册
背景:
阅读新闻

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

[日期:2015-07-22] 来源:Linux社区  作者:Linux [字体: ]

在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'

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-07/120289.htm

linux
相关资讯       linux cp命令  cp命令不提示覆盖 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款