É possível fazer por exemplo: ls -l *
que imprima o conteúdo de todo um diretório. E adicione uma exceção, por exemplo, test.cpp
para imprimir todos os arquivos, exceto o test.cpp
.
Responder1
Você pode fazer isso com um glob se tiver extglob
ativado. Você pode habilitá-lo com:
shopt -s extglob
E você pode usá-lo como:
ls -l !(test.cpp)
e também pode ser usado de outras maneiras:
ls -l !(*.jpg) # list all files that don't have .jpg extensions
Como este é um shell glob, ele também pode ser usado com outros comandos. Um efeito colateral, entretanto, é que isso faz com que quaisquer subdiretórios sejam listados explicitamente, o que significa que isso ls
também os listaria. Mas isso pode ser facilmente resolvido com:
ls -ld !(test.cpp)
Responder2
A maneira clássica (ingênua?) de fazer isso seria
ls -l * | grep -v test.cpp
No entanto, como comentou Lamar, o GNU ls
tem opções para ignorar certos nomes de arquivos
ls -l -I test.cpp *
A nota ls -l *
lista os arquivos no diretório atuale arquivos em subdiretórios de 1º nível. Você pode ter querido dizer ls -l
sem o*