我正在尝试使用cp命令并强制覆盖。
我尝试过cp-rf/foo/*/bar,但仍然会提示我确认每个覆盖。
我正在尝试使用cp命令并强制覆盖。
我尝试过cp-rf/foo/*/bar,但仍然会提示我确认每个覆盖。
当前回答
如果这是一个小文本文件,您也可以这样考虑:
cat my.cnf > /etc/my.cnf
不确定大型或二进制文件的效率或副作用。
其他回答
您可能在某处有一个别名,将cp映射到cp-i;因为使用默认设置,cp不会要求覆盖。检查你的.bashrc,你的个人资料等。
请参阅cp手册页:只有在指定-i参数时,cp才会在覆盖之前实际提示。
您可以通过别名命令进行检查:
$ alias
alias cp='cp -i'
alias diff='diff -u'
....
要取消定义别名,请使用:
$ unalias cp
这可能是由于cp已经别名为类似cp-i的内容所致。直接调用cp应该可以:
/bin/cp -rf /zzz/zzz/* /xxx/xxx
另一种解决方法是使用yes命令:
yes | cp -rf /zzz/zzz/* /xxx/xxx
我找到了这个
'cp' -rf * /data/danalonso_testing/target/
资料来源:https://superuser.com/questions/358843/how-to-replace-all-the-contents-from-one-folder-with-another-one/358851
正如其他答案所指出的,如果cp是cp-i的别名,这可能会发生。
您可以在cp命令之前附加一个\,以使用它而不使用别名。
\cp -fR source target
我只是使用unalias删除“cp-I”别名,然后进行复制,然后设置回别名。:
unalias cp
cp -f foo foo.copy
alias cp="cp -i"
不是最漂亮的代码,但易于设置和高效。我还检查了别名是否已经用简单的
alias |grep cp