【发布时间】:2022-01-18 09:14:21
【问题描述】:
我正在尝试使用 shell 脚本实现一个 linux 命令,以从忽略“output.mp4”和“_Removed.avi”的目录中删除一些文件和目录,但出现以下错误:
./test.sh: line 11: syntax error near unexpected token `('
./test.sh: line 11: `sudo rm -rf !("output.mp4"|"_Removed.avi")'
我正在实施的脚本是:
#!/bin/bash
if [ -d /home/Videos_bkp/ ]
then
cd /home/subham/Videos_bkp
sudo rm -rf !("output.mp4"|"_Removed.avi")
else
echo "Directory Not Available"
fi
#提前致谢。
【问题讨论】:
-
如果您想使用扩展的 glob 模式匹配运算符(如
!(...)),如果尚未启用,则必须首先启用extglobbash 选项(shopt -s extglob)。注意:您测试了目录/home/Videos_bkp/的存在,但您在目录/home/subham/Videos_bkp中工作。这可能是一个错误。注意:您无需在目录中cd即可访问其内容。!("/home/subham/Videos_bkp/output.mp4"|"/home/subham/Videos_bkp/_Removed.avi")也一样。