复制现有文件而不确认?

复制现有文件而不确认?

我需要复制并覆盖大量文件,我使用了以下命令:

# cp -Rf * ../

但是每当目标文件夹中存在同名文件时,我就会收到以下问题:

cp: overwrite `../ibdata1'? 

问题是我有大约 200 个文件将被覆盖,而且我不认为按Y then Enter200 次是正确的方法。

那么,正确的方法是什么?

答案1

您可以这样做yes | cp -rf myxx,或者如果您以 root 身份执行此操作 - 您的 .bashrc 或 .profile 具有 cp 到 cp -i 的别名,大多数现代系统都会对 root 配置文件执行此操作。

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

答案2

您是否意识到 RHEL 和 CentOS 已尝试通过为 root 用户设置别名来防止意外覆盖和删除文件来保护新手用户?

alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'

-i开关是修改或删除现有文件时需要确认的开关。因为别名扩展发生在命令执行之前,所以即使使用开关--force -f 仍然需要确认。

您可以通过编辑文件永久删除别名/root/.bashrc,在会话期间使用以下命令删除别名,unalias cp 或者使用以下命令之一删除别名:

  • 使用完整路径/bin/cp
  • 使用引号"cp"'cp'在命令周围使用引号
  • 使用命令关键字例如command cp
  • 逃避命令\cp

相关内容