网站搜索

如何强制 cp 命令覆盖而不确认


cp 命令(代表复制)是 Linux 和其他类 UNIX 操作系统上常用的命令之一,用于复制文件和目录。在本指南中,我们将展示如何在 Linux 中强制 cp 命令覆盖复制操作而无需确认。

通常,当您运行cp命令时,它会覆盖目标文件或目录,如图所示。

cp bin/git_pull_frontend.sh test/git_pull_frontend.sh

要以交互模式运行 cp 以便在覆盖现有文件或目录之前提示您,请使用 -i 标志,如图所示。

cp -i bin/git_pull_frontend.sh project1/git_pull_frontend.sh

默认情况下,现代 Linux 发行版,尤其是 Red Hat Enterprise Linux (RHEL) 系列中的发行版,都带有 cp 命令 的别名,这使得用户在交互模式下运行cp命令。在 DebianUbuntu 衍生产品上情况可能并非如此。

要检查所有默认别名,请运行alias 命令,如下所示。

alias

上面屏幕截图中突出显示的别名意味着当您运行该命令时,默认情况下它将在交互模式下运行。即使您使用 yes 命令,shell 仍会提示您确认覆盖。

yes | cp -r bin test

强制覆盖的最佳方法是在 cp 命令 之前使用反斜杠,如以下示例所示。在这里,我们将 bin 目录的内容复制到 test 目录。

\cp -r bin test

或者,您可以为当前会话unalias cp 别名,然后在非交互模式下运行cp 命令

unalias cp
cp -r bin test

有关详细信息,请参阅cp 命令手册页。

man cp

如果您有任何疑问,请通过下面的反馈表询问我们。