在shell脚本中复制并覆盖文件

我想复制一个特定的文件到一个位置,而不pipe该文件是否已经存在于目的地或不。 我试图复制通过shell脚本。但该文件不被复制。 我正在使用以下命令

/bin/cp -rf /source/file /destination

但是这不起作用。

这个问题已经被讨论过,但是你可以写一个这样的脚本:

 #!/bin/bash if [ ! -d "$2" ]; then mkdir -p "$2" fi cp -R "$1" "$2" 

你的问题可能是由默认的系统中创建的cp命令的别名造成的(你可以通过输入“alias”来查看你的别名)。 例如,我的系统默认具有以下alis:alias cp ='cp -i',其中-i覆盖-f选项,即cp将始终提示进行覆盖确认。

在这种情况下,你需要什么(即使你没有别名也能工作)是给那个确认提供“是”。 要做到这一点,只需修改您的cp命令看起来像这样:

是| cp / source / file / destination

使用

 cp -fr /source/file /destination 

这应该可能解决问题。

/ bin / cp -rf src dst或/ usr / bin / env cp -rf