bash 扩展 globs :: rm 除两个特定文件之外的所有 *.jpg 文件

bash 扩展 globs :: rm 除两个特定文件之外的所有 *.jpg 文件

我可以使用 Bash 扩展的 glob 模式来实现逻辑“AND”吗?假设我有一个文件夹图片文件(以及其他文件),我想 rm 所有图片文件除外A.jpgjpg jpg jpg。如果不尝试临时保留文件等技巧,我该怎么做?我猜一般主题是如何在 Bash 扩展 glob 中组合逻辑表达式和否定。

答案1

shopt -s extglob
rm !(A|B).jpg

!(pattern-list) 匹配除给定模式之外的任何内容。
pattern-list是一个或多个模式的列表,用‘|’


您还可以使用find

find . -name '*.jpg' ! -name '[AB].jpg' -delete

相关内容