Na verdade, ls [L]*
(que é equivalente a ls L*
) lista os arquivos no diretório atual que não são diretórios e cujo nome começa com L
e lista o conteúdo dos subdiretórios do diretório atual cujo nome começa com L
. Para listar os arquivos no diretório atual que não são diretórios e cujo nome começa com L
, você precisa passar a opção -d
: ls -d L*
.
Para corresponder arquivos cujo nome não comece com L
, você pode usar o padrão glob [^L]
(que também pode ser escrito [!L]
, para compatibilidade com outros shells). [^L]
corresponde a qualquer caractere diferente de L
, portanto, [^L]*
corresponde a nomes de arquivos que começam com qualquer caractere diferente de L
. Como os nomes dos arquivos não podem estar vazios, [^L]*
corresponde exatamente aos nomes dos arquivos que não começam com L
.
Como alternativa, se a opção extended_glob
estiver configurada (a maioria dos usuários coloca isso em .zshrc
), você pode usar o operador ^
para negar correspondências: ^L*
corresponde aos nomes de arquivos que não correspondem a L*
, ou seja, os nomes dos arquivos que não começam com L
. Esta sintaxe é específica para zsh.