我可以使用 Bash 扩展的 glob 模式来实现逻辑“AND”吗?假设我有一个文件夹图片文件(以及其他文件),我想 rm 所有图片文件除外A.jpg和jpg jpg jpg。如果不尝试临时保留文件等技巧,我该怎么做?我猜一般主题是如何在 Bash 扩展 glob 中组合逻辑表达式和否定。
答案1
shopt -s extglob
rm !(A|B).jpg
!(pattern-list)
匹配除给定模式之外的任何内容。
pattern-list
是一个或多个模式的列表,用‘|’
您还可以使用find
:
find . -name '*.jpg' ! -name '[AB].jpg' -delete