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

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


当前回答

cp通常是这样的别名

alias cp='cp -i'   # i.e. ask questions of overwriting

如果确定要进行覆盖,请使用以下命令:

/bin/cp <arguments here> src dest

其他回答

另一种不使用别名调用命令的方法是使用bash中内置的命令。

命令cp-rf/zzz/zzz/*

cp通常是这样的别名

alias cp='cp -i'   # i.e. ask questions of overwriting

如果确定要进行覆盖,请使用以下命令:

/bin/cp <arguments here> src dest

-n是“不覆盖”,但他的问题与你回答的完全相反。

为了避免这种确认,您可以简单地使用绝对路径运行cp命令,它将避免别名。

/bin/cp源文件目标

它不是cp-i。如果您不想被要求确认,它是cp-n;例如:

cp -n src dest

或者在目录/文件夹的情况下:

cp -nr src_dir dest_dir

你可以做yes | cp-rf xxx yyy,但我的gutfeeling说,如果你以root身份做,你的.bashrc或.profile有一个cp到cp-i的别名,大多数现代系统(主要是RH衍生产品)都是这样做的。

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

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

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