如何扩展文件名中的变量名和通配符?

如何扩展文件名中的变量名和通配符?

我有一个 bash 脚本,其中$DIR的目录名可能包含空格。

这:

rm "$DIR/*.MOV"

给出错误“没有这样的文件或目录”。没有字面上名为“*.MOV”的文件;我希望*将其扩展为多个参数 - 每个匹配的文件名一个。

例如:

rm some\ folder/foo.MOV some\ folder/bar.MOV

我怎样才能做到这一点?

答案1

引用可以防止通配符。在 GNU bash 中尝试以下操作:

rm "$DIR"/*.MOV

答案2

解决方法:

for FILE in `ls "$DIR" | grep .MOV`; do
  rm "$DIR/$FILE"
done

相关内容