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

Mar*_*tus 1 bash

我可以使用 Bash 扩展的 glob 模式来实现逻辑“与”吗?假设我有一个jpg文件文件夹(以及其他文件),我想 rm除A.jpgB.jpg之外的所有jpg文件。如果不尝试临时重新整理文件等技巧,我将如何做到这一点?我想总的主题是如何在 Bash 扩展 glob 中组合逻辑表达式和否定。

kev*_*kev 6

shopt -s extglob
rm !(A|B).jpg
Run Code Online (Sandbox Code Playgroud)

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


您还可以使用find

find . -name '*.jpg' ! -name '[AB].jpg' -delete
Run Code Online (Sandbox Code Playgroud)