如何强制cp在未经确认的情况下被覆盖
我试图使用cp命令并强制覆盖。
我已经尝试过cp -rf /foo/* /bar ,但仍然会提示确认每个覆盖。
你可以做yes | cp -rf xxx yyy yes | cp -rf xxx yyy ,但是我的感觉是说如果你以root身份执行它 - 你的.bashrc或.profile具有cp到cp -i的别名,大多数现代系统(主要是RH衍生物)都会将它用于根配置文件。
您可以通过在命令提示符处运行alias来检查现有的别名,或者可以使用which cp来检查仅用于cp别名。
如果你确实定义了别名,运行unalias cp会取消当前会话的别名,否则你可以从你的shell配置文件中删除它。
您可以暂时绕过一个别名,并通过在的前面加上前缀的非别名版本,例如cp whatever
这可能是由于cp已经被别名为cp -i类的原因造成的。 直接调用cp应该可以工作:
/bin/cp -rf /zzz/zzz/* /xxx/xxx
解决这个问题的另一种方法是使用yes命令:
yes | cp -rf /zzz/zzz/* /xxx/xxx
正如其他一些答案所述,你可能使用别名将cp映射到cp -i或类似的地方。 您可以在没有别名的情况下运行一个命令,方法是在它之前加一个反斜杠。 在你的情况下,尝试
cp -r /zzz/zzz/* /xxx/xxx
反斜杠将暂时禁用您称为cp任何别名。
上一篇: How to force cp to overwrite without confirmation
下一篇: How do I stop/workaround Java apps stealing focus in Linux window managers
