¿Es posible hacer, por ejemplo: ls -l *
imprimir el contenido de todo un directorio? Y agregue una excepción, por ejemplo, test.cpp
para imprimir todos los archivos excepto el test.cpp
.
Respuesta1
Puedes hacerlo con un globo si lo tienes extglob
habilitado. Puedes habilitarlo con:
shopt -s extglob
Y puedes usarlo como:
ls -l !(test.cpp)
y también se puede utilizar de otras maneras:
ls -l !(*.jpg) # list all files that don't have .jpg extensions
Dado que se trata de un shell global, también se puede utilizar con otros comandos. Un efecto secundario, sin embargo, es que hace que los subdirectorios se enumeren explícitamente, lo que significa que eso ls
también los enumeraría. Pero eso se puede manejar fácilmente con:
ls -ld !(test.cpp)
Respuesta2
La forma clásica (¿ingenua?) de hacer esto sería
ls -l * | grep -v test.cpp
Sin embargo, como comentó Lamar, GNU ls
tiene opciones para ignorar ciertos nombres de archivos.
ls -l -I test.cpp *
Nota ls -l *
enumera los archivos en el directorio actualy archivos en subdirectorios de primer nivel. Quizás quisiste decir ls -l
sin*