如何按模式从 bash 中删除除特定文件之外的所有文件?

如何按模式从 bash 中删除除特定文件之外的所有文件?



我尝试自动从目录中删除所有文件,但排除特定文件

如果我从终端运行它,语法$ rm *.!(vmx*|vmd*)效果很好,但如果我创建一些 bash 脚本文件(例如名为:patt1_exclude_vm_gb.shpatt1_exclude_vm_gb),它就不起作用。

-- patt1_exclude_vm_gb.sh
#!/bin/bash

$ rm *.!(vmx*|vmd*)

有人知道如何纠正 bash 脚本吗?

答案1

bash需要先启用扩展的全局模式支持,shopt -s extglob然后才能使用该!( ... )模式。 (或其他扩展模式?( ... ), *( ... ), +( ... ), 和@( ... )

相关内容