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

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


当前回答

我找到了这个

'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。您可以检查它,键入别名,然后可以看到类似的内容:

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'

要解决这个问题,只需使用/bin/cp/from/To命令,而不是cp/from_To命令

cp -u ...
cp --update ...

同样有效。

您可能在某处有一个别名,将cp映射到cp-i;因为使用默认设置,cp不会要求覆盖。检查你的.bashrc,你的个人资料等。

请参阅cp手册页:只有在指定-i参数时,cp才会在覆盖之前实际提示。

您可以通过别名命令进行检查:

$ alias
alias cp='cp -i'
alias diff='diff -u'
....

要取消定义别名,请使用:

$ unalias cp

如果您想在全局级别保持别名不变,并且只想更改脚本。

只需使用:

别名cp=cp

然后编写后续命令。

也可以使用此命令:

cp-ru/zzz/zzz/*/xxx/xxx

它会用新文件更新现有文件。