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

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


当前回答

另一种不使用别名调用命令的方法是使用bash中内置的命令。

命令cp-rf/zzz/zzz/*

其他回答

cp通常是这样的别名

alias cp='cp -i'   # i.e. ask questions of overwriting

如果确定要进行覆盖,请使用以下命令:

/bin/cp <arguments here> src dest

另一种不使用别名调用命令的方法是使用bash中内置的命令。

命令cp-rf/zzz/zzz/*

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

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

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

我只是使用unalias删除“cp-I”别名,然后进行复制,然后设置回别名。:

unalias cp  
cp -f foo foo.copy  
alias cp="cp -i"  

不是最漂亮的代码,但易于设置和高效。我还检查了别名是否已经用简单的

alias |grep cp

它不是cp-i。如果您不想被要求确认,它是cp-n;例如:

cp -n src dest

或者在目录/文件夹的情况下:

cp -nr src_dir dest_dir