Isso realmente é feito pelo seu shell, não pelo ls .
Em bash , você usaria:
shopt -s nocaseglob
e então executam o seu comando.
Ou em zsh :
unsetopt CASE_GLOB
Ou no yash:
set +o case-glob
e depois o seu comando.
Você pode querer colocar isso em .bashrc , .zshrc ou .yashrc , respectivamente.
Como alternativa, com zsh:
setopt extendedglob
ls -d -- (#i)*abc*
(isto é, globalização insensível a maiúsculas e minúsculas por caractere curinga)
Com ksh93:
ls -d -- ~(i:*abc*)
Você deseja que globbing funcione de forma diferente, não ls , pois todos esses arquivos são passados para ls pelo shell.