如何在不确认的情况下强制 cp 覆盖

新手上路,请多包涵

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

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

原文由 Thiyagarajan Varadharaj 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 789
2 个回答

You can do yes | cp -rf xxx yyy , but my gutfeeling says that if you do it as root - your .bashrc or .profile has an alias of cpcp -i ,大多数现代系统(主要是 RH 衍生产品)都对根配置文件执行此操作。

您可以通过在命令提示符下运行 alias 或运行 --- 检查现有别名来仅检查 cp which cp 的别名。

如果您确实定义了别名,则运行 unalias cp 将取消当前会话的别名,否则您可以将其从 shell 配置文件中删除。

您可以暂时绕过别名并使用命令的非别名版本,方法是在其前面加上 \ ,例如 \cp whatever

原文由 favoretti 发布,翻译遵循 CC BY-SA 3.0 许可协议

这可能是由于 cp 已经被别名为 cp -i 。直接调用 cp 应该可以:

 /bin/cp -rf /zzz/zzz/* /xxx/xxx

解决此问题的另一种方法是使用 yes 命令:

 yes | cp -rf /zzz/zzz/* /xxx/xxx

原文由 pgl 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题