首页 > 解决方案 > 有没有办法阻止 cp 覆盖两个全局文件中的第二个

问题描述

意图: cp /path/to/code.{c,h} .

简洁版: cp /path/to/code.* .

再次出现错字: cp /path/to/code.*

在拼写错误的情况下,第二个文件被第一个文件覆盖。这一直困扰着我,我并不乐观,除了重写我的神经回路之外还有其他解决方案,但人们可以做梦。

每次都要求确认或一些危险的视觉指示都是解决方案。

默认为 --no-clobber 或类似的不是一个解决方案,因为我通常会在预期的目的地破坏某些东西。

标签: bashcp

解决方案


按照建议,您可以创建一个别名

alias cp='cp -i'

这样您在从命令行调用 cp 时总是会收到提示。请注意,这不会影响脚本。

cp 的手册页有这样的说法:

   -i, --interactive
          prompt before overwrite (overrides a previous -n option)

推荐阅读