l[a,l,s,h,] *
não corresponde a l
porque []
não é uma lista separada por vírgulas para expandir - essa é a sintaxe da expansão de chaves. Com [...]
, [a,l,s,h,]
é igual a [alsh,]
e não significa alsh
ou nada. Você precisa de l[alsh]#
.
Para ls
, o espaço parece estar quebrando essa correspondência, apesar de tudo depois disso ser opcional. Então, na prática, isso parece ignorar ls
apenas se tiver um argumento:
~ ls foo
ls: cannot access 'foo': No such file or directory
~ tail ~/.histfile
HISTORY_IGNORE='([bf]g *|cd ..|l[a,l,s,h,]*|less *|vi[m,] *)'
l
tail ~/.histfile
l
tail ~/.histfile
Parece que você precisa tornar o *
opcional também:
HISTORY_IGNORE='([bf]g *|cd ..|l[alsh]#( *)#|less *|vim# *)'