Creo que quieres usar una función del shell, no de ls. Yo uso bash, así que busqué lo que quieres man bash. Busque "^ EXPANSION", (presionando primero '/'). Extracto:
EXPANSIÓN
La expansión se realiza en la línea de comando después de que se ha dividido en palabras. Hay siete tipos de expansión lleva a cabo: la expansión de llaves , de tilde de expansión , los parámetros y la expansión de variables , sustitución de orden , expansión aritmética , la división de palabras , y la expansión de nombre de camino .
︙
... <recorte> ...
︙
Expansión de nombre de ruta
Después de la división de palabras, a menos que el -f opción se ha establecido, fiesta escanea cada palabra de los personajes *, ?y [. Si aparece uno de estos caracteres, la palabra se considera un patrón y se reemplaza por una lista ordenada alfabéticamente de nombres de archivos que coinciden con el patrón. ...
Recientemente comencé a excluir archivos basados en su primera letra, con un comando como:
$ ls ./[^t]*
Esto coincidiría con cualquier cosa que no comience con la letra t. Si agrega más caracteres entre los corchetes, también excluye los archivos que comienzan con esas letras.
Buscando un enlace, ¡y tengo uno bueno! Ver coincidencia de patrones . A partir de ahí, esto funcionaría para su caso:
$ ls -lrt ./!(temp_log.*)
Esto requiere que la extglobopción de shell esté habilitada usando el shoptbuiltin ( shopt -s extglob), como lo indica Gilles .
ls --hide='temp_log.$$'debería funcionar. También podría / debería extender esto con comodines, dependiendo de qué parte del término completotemp_log.$$sea.