Suponha que eu tenha estes arquivos:
foo/bar/baz/test.js
foo/bar/baz/test.min.js
Se eu correr:
shopt -s globstar
shopt -s extglob
echo foo/bar/**/*!(.min).js
...que ainda assim corresponderá ao test.min.js
arquivo.
Como posso ignorar isso?
Suponha que eu tenha estes arquivos:
foo/bar/baz/test.js
foo/bar/baz/test.min.js
Se eu correr:
shopt -s globstar
shopt -s extglob
echo foo/bar/**/*!(.min).js
...que ainda assim corresponderá ao test.min.js
arquivo.
Como posso ignorar isso?
Em um extglob,
!(.min)
pode corresponder a tudo, exceto.min
(e qualquer coisa que contenha um/
); isso inclui a string vazia !Quando você testa
foo/bar/baz/test.min.js
com o globfoo/bar/**/*!(.min).js
você obtém um acerto porque:foo/bar/
partidasfoo/bar/
**/
partidasbar/
*
partidastest.min
!(.min)
corresponde à string vazia.js
partidas.js
O significado que você quer de
!(.min)
é, na verdade, " qualquer coisa que não termine com.min
", que é a negação de*.min
, então use!(*.min)
para corrigir o problema: