É possível adicionar uma exceção com um “ls -l *”

É possível adicionar uma exceção com um “ls -l *”

É 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 extglobativado. 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 lstambé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 lstem 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 -lsem o*

informação relacionada