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 extglob
opción de shell esté habilitada usando el shopt
builtin ( 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.