ls -d *e*
imprime todos los archivos que contienen una "e" en alguna parte. Pero al contrario, ls -d *[!e]*
no parece funcionar. ¿Por qué es eso exactamente?
es porque ls
toma *
como su propio argumento y expande todos los archivos?
Entiendo que puedo hacer:ls -d !(*e*)
(en Bash con extglob
conjunto, o en ksh).
Respuesta aceptada:
Lo que ese globo está haciendo en realidad es hacer coincidir cualquier cantidad de caracteres, luego un solo carácter que no sea una e, luego cualquier cantidad de caracteres. Coincidirá con cualquier archivo con un nombre que no esté compuesto enteramente por e.