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

Z0O*_*0OM 5 linux shell bash cp shell-script

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

没有 rsync、tar、find、mv 等。

正是这个命令:

cp -var test/!(test2) testbkp

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

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

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

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

我也检查了这篇文章,但没有结果: cp command won't run ifexecute from shell script

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

use*_*001 18

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

#!/bin/bash
shopt -s extglob
cp -var test/!(test2) testbkp
Run Code Online (Sandbox Code Playgroud)

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