Это оболочка glob, похожая на подстановочные знаки * и ? ... в bash, шаблон имени файла *.[co] соответствует всем именам файлов, которые заканчиваются на .c или .o.
[d1 ] Разница с *.[co] по сравнению с *.c *.o или *.{c,o} заключается в том, что два последних шаблона будут расширяться до манекена *.o, если в каталоге нет файлов .o, а версия *.[co] - нет.Shell globs полезны для выполнения операций с файлами с учетом нечувствительности. Например, если у вас есть куча файлов с именами файлов, которые заканчиваются на jpg, JPG, Jpg, JPg и т. Д. ... и вы хотите удалить все из них, вы можете сделать:
rm *.[Jj][Pp][Gg]