Eu acho que você deseja usar um recurso do shell, não de ls. Como uso o bash, verifiquei o que você deseja man bash. Procure por "^ EXPANSÃO", (pressionando primeiro '/'). Excerto:
EXPANSÃO
A expansão é realizada na linha de comando após ter sido dividida em palavras. Existem tipos sete da expansão realizada: expansão cinta , tilde expansão , parâmetro e expansão de variáveis , substituição de comandos , expansão aritmética , dividindo palavra , e expansão de nome .
︙
... <recorte> ...
︙
Expansão do nome do caminho
Depois de repartição de palavras, a menos que o -f opção tiver sido definido, o bash verifica cada palavra para os personagens *, ?e [. Se um desses caracteres aparecer, a palavra será considerada um padrão e substituída por uma lista classificada alfabeticamente de nomes de arquivos que correspondem ao padrão. ...
Recentemente, comecei a excluir arquivos com base na primeira letra, com um comando como:
$ ls ./[^t]*
Isso corresponderia a qualquer coisa que não comece com a letra t. Se você adicionar mais caracteres entre colchetes, também excluirá os arquivos que começam com essas letras.
Procurando por um link, e eu tenho um bom! Consulte Correspondência de padrões . A partir daí, isso funcionaria para o seu caso:
$ ls -lrt ./!(temp_log.*)
Isso requer que a extglobopção shell seja ativada usando o shoptbuiltin ( shopt -s extglob), conforme declarado por Gilles .
ls --hide='temp_log.$$'deve funcionar. Você também pode / deve estender isso com caracteres curinga, dependendo de qual parte de todo o termotemp_log.$$é.