您的位置:首页 > 运维架构 > Linux

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

2018-03-14 16:41 489 查看
在Linux下,如果希望将文件file拷贝到目录dir下,执行:cp file dir
如果dir下已经存在一个同名的文件时,系统总是会提示是否覆盖file。

直接上图,-f 参数还是出现烦人的提示:



这是一个很好的功能,它能够防止我们由于疏忽对系统造成的损害,但如果不希望看到这些交互的提示信息呢?比如我们需要写一个脚本,将某些文件安装到指定的目录下,这时我们并不想看到提示。

原因很简单,系统将cp命令alias为cp -i。
当我们执行cp命令的时候,系统往往执行的是cp -i,-i 选项表示有交互的提示信息,所以执行cp -f的时候,系统实际执行的是cp -i -f,所以仍然会有覆盖提示。

可以执行alias命令查看下: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 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, which cp命令得到),如which cp # /usr/bin/cp
/usr/bin/cp -f file dir/2、直接执行下面的语句调用系统原始的命令(推荐使用):   \cp -f file dir/3、在~/.bashrc里面注释掉 Alias cp='cp -i'
4、unalias cp ,然后再使用cp,但使用后还原alias cp='cp -i'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: