Esses caracteres são sequências de controle que mudam de cor. Essas seqüências não funcionam no emacs *shell* buffers: elas são exibidas quase diretamente.
Você deve alterar o arquivo de inicialização do shell (provavelmente ~/.bashrc ) para que ls use cores apenas nos terminais que os suportam. Na prática, é provável que isso signifique em todos os tipos de terminal diferentes de dumb (que é o tipo de terminal fornecido em *shell* buffers). O tipo de terminal é indicado na variável de ambiente TERM , então você pode fazer algo assim:
if [ "$TERM" != "dumb" ]; then
alias ls='ls --color=auto'
fi