我正在尝试使用cp命令并强制覆盖。

我尝试过cp-rf/foo/*/bar,但仍然会提示我确认每个覆盖。


当前回答

正如其他答案所指出的,如果cp是cp-i的别名,这可能会发生。

您可以在cp命令之前附加一个\,以使用它而不使用别名。

\cp -fR source target

其他回答

正如其他一些答案所指出的,您可能在某个地方使用了将cp映射到cp-i或类似的别名。通过在命令前面加一个反斜杠,可以运行没有任何别名的命令。在你的情况下,尝试

\cp -r /zzz/zzz/* /xxx/xxx

反斜杠将暂时禁用您调用的任何别名。

这可能是由于cp已经别名为类似cp-i的内容所致。直接调用cp应该可以:

/bin/cp -rf /zzz/zzz/* /xxx/xxx

另一种解决方法是使用yes命令:

yes | cp -rf /zzz/zzz/* /xxx/xxx

-n是“不覆盖”,但他的问题与你回答的完全相反。

为了避免这种确认,您可以简单地使用绝对路径运行cp命令,它将避免别名。

/bin/cp源文件目标

对我来说最简单的方法是:

yes | cp source destination

我找到了这个

'cp' -rf * /data/danalonso_testing/target/

资料来源:https://superuser.com/questions/358843/how-to-replace-all-the-contents-from-one-folder-with-another-one/358851