![如何扩展文件名中的变量名和通配符?](https://linux22.com/image/1487157/%E5%A6%82%E4%BD%95%E6%89%A9%E5%B1%95%E6%96%87%E4%BB%B6%E5%90%8D%E4%B8%AD%E7%9A%84%E5%8F%98%E9%87%8F%E5%90%8D%E5%92%8C%E9%80%9A%E9%85%8D%E7%AC%A6%EF%BC%9F.png)
我有一个 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