我正在尝试使用cp命令并强制覆盖。
我尝试过cp-rf/foo/*/bar,但仍然会提示我确认每个覆盖。
我正在尝试使用cp命令并强制覆盖。
我尝试过cp-rf/foo/*/bar,但仍然会提示我确认每个覆盖。
当前回答
你可以做yes | cp-rf xxx yyy,但我的gutfeeling说,如果你以root身份做,你的.bashrc或.profile有一个cp到cp-i的别名,大多数现代系统(主要是RH衍生产品)都是这样做的。
您可以通过在命令提示符下运行alias来检查现有别名,或者只检查cp的别名。
如果您确实定义了别名,运行unalias cp将取消当前会话的别名,否则您可以将其从shell配置文件中删除。
您可以暂时绕过别名并使用命令的非别名版本,方法是在命令前面加上\,例如\cp whatever
其他回答
你可以做yes | cp-rf xxx yyy,但我的gutfeeling说,如果你以root身份做,你的.bashrc或.profile有一个cp到cp-i的别名,大多数现代系统(主要是RH衍生产品)都是这样做的。
您可以通过在命令提示符下运行alias来检查现有别名,或者只检查cp的别名。
如果您确实定义了别名,运行unalias cp将取消当前会话的别名,否则您可以将其从shell配置文件中删除。
您可以暂时绕过别名并使用命令的非别名版本,方法是在命令前面加上\,例如\cp whatever
cp -u ...
cp --update ...
同样有效。
这可能是由于cp已经别名为类似cp-i的内容所致。直接调用cp应该可以:
/bin/cp -rf /zzz/zzz/* /xxx/xxx
另一种解决方法是使用yes命令:
yes | cp -rf /zzz/zzz/* /xxx/xxx
它不是cp-i。如果您不想被要求确认,它是cp-n;例如:
cp -n src dest
或者在目录/文件夹的情况下:
cp -nr src_dir dest_dir
正如其他一些答案所指出的,您可能在某个地方使用了将cp映射到cp-i或类似的别名。通过在命令前面加一个反斜杠,可以运行没有任何别名的命令。在你的情况下,尝试
\cp -r /zzz/zzz/* /xxx/xxx
反斜杠将暂时禁用您调用的任何别名。