Bash realiza a expansão do shell em cada linha de comando. Uma dessas expansões é expansão de nome de arquivo que substitui * de acordo com as regras padrões de correspondência .
No caso de evince * , ele substitui o * pelo conteúdo do diretório de trabalho atual. O conteúdo significa nomes de arquivos regulares, subdiretórios, links, etc. Arquivos de pontos são excluídos. Basicamente, o que você obtém executando ls . No seu caso, nomes de arquivos de PDFs.
Portanto, o binário evince é executado pelo Bash apenas uma vez, com argumentos que são alfabeticamente contidos no diretório de trabalho atual. A maneira como o Evince lida com o lançamento depois disso é com o Evince ou qualquer outro framework ou biblioteca do qual ele dependa, mas os barebones X não fazem nada de especial aqui. Evince ou X nem sabem que foi executado com * . Por exemplo:
$ ls -a
. .. .hiddendoc.pdf doc1.pdf doc2.docx otherdoc.pdf somedir
$ evince *
# is equivalent to
$ evince doc1.pdf doc2.docx otherdoc.pdf somedir
Se você quiser saber como o * é expandido, basta executar echo * . Você pode perceber que, se o diretório de trabalho estiver vazio (contém apenas arquivos de pontos), o asterisco não será expandido e permanecerá como argumento para a execução de comandos.
Como mencionado no manual de Bashs vinculado, há várias configurações que alteram esse comportamento. Sem mencionar outras conchas.