Os nomes de arquivos Unix podem conter qualquer caractere (além de '/' ou '\ 0'), portanto, essa é realmente uma questão de shell; a lista de metacaracteres que precisam de escape depende do shell e da configuração específica do shell. Você parece estar usando bash; outras conchas falharão se o ou * expressões glob são deixadas sem aspas:
$ mkdir test && cd test
$ ls
$ touch *foo
$ ls
*foo
$ exec zsh
% touch *bar
zsh: no matches found: *bar
% ls
*foo
%
O bash pode definir a opção de shell failglob para se comportar como zsh a esse respeito. Em geral, cite tudo, ou melhor ainda, não coloque metacaracteres (ou até mesmo espaço) em nomes de arquivos unix, pois esse caminho pode levar a rm -rf
chamadas a nuking de árvores de diretório inteiras ou outras falhas aleatórias (um arquivo -i
sendo ler como um argumento) ou problemas de segurança no código shell.