Esse erro significa que você tem um escape # (isso significa \# ) em um dos arquivos de inicialização do bash. Como ele não parece estar em ~/.bashrc ou ~/.bash_profile , ele precisa estar em um dos outros arquivos que o bash lê quando é carregado. Para ter certeza, basta pesquisar em todos eles 1 :
grep -FH '\#' ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login \
~/.bash_aliases /etc/bash.bashrc /etc/profile \
/etc/profile.d/* /etc/environment 2>/dev/null
Isso deve mostrar que um dos arquivos listados acima contém \# . Edite o arquivo, remova-o e tudo deve funcionar.
Se o comando não retornar nenhuma saída, isso significa que um desses arquivos está obtendo outro arquivo — não-padrão — e esse é o arquivo que apresenta o erro. Se este for o caso, edite sua pergunta e adicione a saída deste comando:
grep -P '(^|\s+)(\.|source) .' ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login \
~/.bash_aliases /etc/bash.bashrc /etc/profile \
/etc/profile.d/* /etc/environment 2>/dev/null
Isso deve imprimir todas as instâncias de fornecimento de outro arquivo e deve nos apontar na direção certa.
Mais geralmente, # não é um comando, é um comentário. Qualquer coisa depois é simplesmente ignorada por bash . Então, quando você executa pacman -Ss # , na verdade você está executando pacman -Ss sozinho e é por isso que você obtém tantos resultados.
1 Alguns desses arquivos são irrelevantes aqui. Por exemplo, ~/.profile é ignorado se ~/.bash_profile existir e /etc/profile não for lido quando você abrir um novo terminal, mas você também pode pesquisar por todos eles apenas no caso.