Listar arquivos cujo nome começa com qualquer um dos caracteres entre a para k

4

Como listar os arquivos cujo nome começa com qualquer um dos caracteres a a k (ambos inclusivos)?

    
por Lavanya 19.01.2015 / 04:22

7 respostas

6

find . -type f -name '[a-k]*'

ou (para estar protegido contra problemas locais)

find . -type f -name '[abcdefghijk]*'
    
por 19.01.2015 / 04:31
6

Tente isto:

find . -type f -name "[a-k]*"
    
por 19.01.2015 / 04:31
2

Para o diretório atual, só você pode usar

ls -d [a-k]*
    
por 19.01.2015 / 13:32
2

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.

    
por 19.01.2015 / 14:49
1

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

    
por 19.01.2015 / 14:56
0

-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]*
    
por 19.01.2015 / 13:53
0

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]*
    
por 19.01.2015 / 20:53

Tags