---

Bash Extended Globbing

“However, probably the most interesting extended globbing syntax
is the “!(…)” syntax for matching everything except (ie not
matching). But, be careful, this doesn’t always do what you might
expect. For example, let’s list all the files that aren’t JPEGs or
GIFs. One’s first thought might be something like this:

$ ls *!(.jpg|.gif) # wrong, Wrong, WRONG

But that doesn’t work because the “.jpg” and the “.gif” of any
file’s name end up getting matched by the “*” and the null string
at the end of the file name is the part that ends up not matching
the “!(…)” pattern.”

Complete
Story

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends, & analysis