find . -type f -name '[a-k]*'
ou (para estar protegido contra problemas locais)
find . -type f -name '[abcdefghijk]*'
Como listar os arquivos cujo nome começa com qualquer um dos caracteres a a k (ambos inclusivos)?
find . -type f -name '[a-k]*'
ou (para estar protegido contra problemas locais)
find . -type f -name '[abcdefghijk]*'
Tente isto:
find . -type f -name "[a-k]*"
Para o diretório atual, só você pode usar
ls -d [a-k]*
Você pode usar o recurso de expansão da linha de comando do Bash para isso.
$ ls -l [a-k]*
[a-k]
refere-se a alfabetos de a
a k
.
*
refere-se a qualquer caractere qualquer número de vezes.
Então agora o bash procura por arquivos que começam com a letra a
a k
e seguidos por qualquer caractere qualquer número de vezes.
Use apenas o shell globbing (teste: echo [a-k]*
). Você geralmente precisa iterar sobre os arquivos, então o padrão usual é for file in [a-k]*; do something; done
. Nunca use ls
para iteração.
Leitura útil: link
-Para ser mais específico, pois não ficou claro se foi para exibir os arquivos de diretório atuais ou arquivos de sistema, você pode usar um dos modos definidos.
ls -d [a-k] * - > para exibir apenas os arquivos / diretórios do local / diretório / pasta atual.
ou
encontre / -type f -name '[k]' * - > para exibir os arquivos / diretórios inteiros do sistema e lembrando que a diferença aqui seria que os itens ocultos não são exibidos, como já mostramos.
find . -type f -name '[a-k]*'
se usar o comando 'ls' para ver também o uso oculto deste modo.
ls -da [a-k]*
Apenas para referência, com zsh: (E não entrar no thread ls / echo / etc.)
Exibir arquivos simples no diretório atual:
ls [a-k]*(.)
Exibe todos os tipos de arquivos no diretório atual:
ls -d [a-k]*
O mesmo recursivamente:
ls -d -- **/[a-k]*(.)
(não olhando dentro dos diretórios ocultos) e
ls -d -- **/[a-k]*
Tags files