在 Bash 脚本中使用“cp”命令并排除特定目录

在 Bash 脚本中使用“cp”命令并排除特定目录

我需要在 shell 脚本中运行此命令复制源 > 目标并排除一个文件夹。

没有 rsync、tar、find、mv 等。

正是这个命令:

cp -var test/!(test2) testbkp

  1. 在 shell 中它可以工作
  2. 从 Bash 脚本运行,无需排除,就像cp -var test testbkp它的工作原理一样。

当我尝试使用排除选项从 Bash 脚本运行时

cp -var test/!(test2) testbkp,它不起作用。

没有任何输出,什么也没有,也没有错误消息。

我也检查了这个帖子,但没有结果: 如果从 shell 脚本执行,cp 命令将不会运行

如何在 Bash 脚本中运行此 cp 命令并排除文件夹?

答案1

您应该启用该extglob选项,脚本中默认情况下不启用该选项:

#!/bin/bash
shopt -s extglob
cp -var test/!(test2) testbkp

还要验证脚本确实在 bash 下运行。

相关内容