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

时间:2012-12-13 08:35:18

标签: linux shell copy

我想将某个文件复制到某个位置,而不管目标中是否存在该文件。我正在尝试复制shell脚本。但是文件没有被复制。我正在使用以下命令

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

但这不起作用。

4 个答案:

答案 0 :(得分:13)

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

在这种情况下你需要的东西(即使你没有别名也能实际工作)是对该确认提供“是”。为此,只需将cp命令修改为如下所示:

是的cp / source / file / destination

答案 1 :(得分:10)

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

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

答案 2 :(得分:10)

使用

cp -fr /source/file /destination

这应该可以解决问题。

答案 3 :(得分:1)

/ bin / cp -rf src dst 要么 / usr / bin / env cp -rf