如何强制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