linux的cp命令的交互式用法和强制覆盖用法的问题(2)

其实我已经就这个问题提问一次了(见http://zhidao.baidu.com/question/278464818.html),但是那次后来忘记补充一个重要细节了。这... 其实我已经就这个问题提问一次了(见http://zhidao.baidu.com/question/278464818.html),但是那次后来忘记补充一个重要细节了。这里再提问一次吧:
linux下,cp命令复制一个文件时,
如果目标文件已经存在,则给出提示,询问是否要覆盖。我知道有个选项是 -i
如果要强制覆盖,则使用 -f
现在想要这样的效果:如果目标文件已经存在,则默认会给出提示;但是如果加上了一个选项,例如-f,则不给出提示了。

根据我的试验,在fedora7中,命令: cp -i -f srcfile dstfile ,如果目标文件存在,还是会提示。也就是说-f会被忽略。
可是在redhat9中,同样的命令 cp -i -f srcfile dstfile ,如果目标文件存在,不会提示,而是强制覆盖了。
已经用alias查看cp命令了,没有附加别的选项。

也就是说cp命令在redhat9和fedora7中的行为是不同的。
就我提问的目标来说,其实是想要这样的效果:一般cp命令,为了谨慎起见,都会默认使用alias加上 -i 选项的。这样平时的cp,都是有 -i 选项存在了,如果目标文件存在,都会给出提示。可是有时候我已经明确知道了目标文件存在了,想要覆盖它。那么显然我就想直接用 cp -f srcfile dstfile 。(注意此时由于alias的效果,实际命令成为了 cp -i -f srcfile dstfile )。
于是在redhat9中,我就很爽快地得到了我想要的效果:目标文件直接被覆盖。可是在fedora7中,却还是很麻烦的给出提示!这个让人很恼火!我知道可以去掉alias对cp增加的 -i 选项,可是不想这样做,因为平时还是希望能够给出提示的。

希望有谁能比较清楚这其中的细节差别?而不是简单告诉我自己去查coreutils包版本或者源代码,这个我自己也可以做,可是一来不熟,而来看英文不快。所以还求达人指教!
展开
 我来答
百度网友efbdeca2f8
2019-03-25
知道答主
回答量:4
采纳率:66%
帮助的人:1.5万
展开全部

默认root环境下执行 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 sudo='sudo -E'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

但是普通用户没这个,如果你在root用户下不想交互式可以用绝对命令

\cp  \mv   像这样命令前加个‘\’就好了

匿名用户
2011-06-27
展开全部
一个命令,能用就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yjfgc
2011-06-28 · 超过13用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:0
展开全部
用mv命令就能实现覆盖,
mv file /dst/file 会把dst文件夹下的file覆盖,如果dst下没有file文件,就复制。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-04
展开全部
...........还有你可以命令你的手指直接去按电源按钮或者重启按钮
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shibixiao
2011-06-27 · TA获得超过599个赞
知道小有建树答主
回答量:673
采纳率:0%
帮助的人:499万
展开全部
不知道是你用的版本比较低还是怎么的,我没碰到过这些问题。我一般都用cp -rf xx xxx, 碰到文件夹也不会再问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式