[Tutorial Linux] Terminal: Buscando arquivo/diretórios

ダニエリ - Sep 5 '20 - - Dev Community

Às vezes gostaríamos de buscar um arquivo e/ou diretório e não lembramos onde ele está, mas sabemos o nome ou parte do nome dele.

Usando a referência global

O linux possui um recurso conhecido como curinga ou referência global; é através dele que poderemos fazer as nossas buscas. Por exemplo:



$ ls /home/*.py


Enter fullscreen mode Exit fullscreen mode

O comando ls vai listar o conteúdo do diretório indicado e retornará apenas os arquivos com a extensão .py, independente do nome do arquivo.

usando referência global

Buscando por arquivo que contenham uma determinada letra

Se quisermos listar os arquivos que contenham uma determinada letra ou conjunto de letras no meio. Exemplo:



$ ls /home/*re*


Enter fullscreen mode Exit fullscreen mode

Se o diretório tiver a(s) letra(s) referenciadas, ele retornará também o conteúdo contido nele.

resultado da busca 're'

Buscando por arquivo que comece com

Para listar os arquivos que comecem com uma determinada letra, usamos, por exemplo



$ ls /home/s*


Enter fullscreen mode Exit fullscreen mode

Aqui serão listados os arquivos e pastas que comecem com a letra s.

arquivos que começam com 's'

Se eu quiser arquivo e/ou diretórios que comecem com a ou p:



$ ls /home/[a,p]*


Enter fullscreen mode Exit fullscreen mode

buscando arquivos começam com 'a' ou 'p'

É importante notar que o sistema Linux faz distinção entre caracteres maiúsculos e minúsculos.

Buscando por arquivo que termine com

Caso queira arquivos que terminem com uma determinada letra



$ ls /home/*f


Enter fullscreen mode Exit fullscreen mode

Aqui o retorno será arquivos e/ou diretórios que terminam com a letra f. É importante notar que isso inclui também as letras da extensão do arquivo.

arquivos que terminam com 'f'

Para buscar arquivos que terminem com uma sequência de caracteres; exemplo:



$ ls /home/*{pdf,png}


Enter fullscreen mode Exit fullscreen mode

palavram que terminam com 'pdf' e 'png'

Buscando por arquivo que possua um determinado caractere em um posição específica

Outra possibilidade é se quisermos buscar um arquivo que possua um ou mais caracteres em determinada posição. Exemplo:



$ ls /home/??a*


Enter fullscreen mode Exit fullscreen mode

O comando acima pede que retorne arquivos ou pastas com a letra a na terceira posição (os dois pontos de interrogação) independente da terminação do nome do arquivo (asterisco ao final).

'a' na 3ª posição

Buscando arquivo com caracteres especificados

Para buscar arquivos dentro de uma faixa de caracteres. Exemplo:



$ ls /home/a[i-o]*


Enter fullscreen mode Exit fullscreen mode

Aqui temos o retorno dos arquivos que começam com a seguidos das letras i ou j ou k e assim por diante até a letra o (o traço indica o intervalo), com quaisquer terminações (asterisco).

buscando de 'i' até 'o'

Outra maneira é



$ ls /home/a[n,o]*


Enter fullscreen mode Exit fullscreen mode

Nesse caso, a vírgula indica para retornar com a segunda letra sendo n ou o.

buscando 'n' ou 'o'

Ou ainda,



$ ls /home/*[x-z]*


Enter fullscreen mode Exit fullscreen mode

O retorno será todos os arquivos que possuem da letra x até a letra z em quaisquer posições.

buscando letras no intervalo 'x' a 'z'

Caso queira que seu arquivo ou diretório tenha como segundo caractere uma vogal:



$ ls /home/?[a,e,i,o,u]*


Enter fullscreen mode Exit fullscreen mode

buscando 2ª letra vogal

Lembrando que, se o diretório tiver a(s) letra(s) referenciadas, ele retornará também o conteúdo contido nele; como aconteceu com a pasta revisao.

Essa faixa também pode ser de números. Exemplo:



$ ls /home/?[0-9]*


Enter fullscreen mode Exit fullscreen mode

Acima teremos o retorno de arquivos em que o segundo caractere é um número variando de 0 a 9, seguido de qualquer terminação.

Buscando arquivo com um número n de letras

Se quiser que o segundo caractere seja a letra s numa palavra de cinco letras:



$ ls /home/?s???


Enter fullscreen mode Exit fullscreen mode

Uma palavra de seis caracteres, em que o segundo seja uma vogal seguida de s.



$ ls /home/?[a,e,i,o,u]s???


Enter fullscreen mode Exit fullscreen mode

Buscando por duas extensões ao mesmo tempo

Se a minha busca é de duas extensões de arquivos ao mesmo tempo, temos:



$ ls /home/*.{conf,db}


Enter fullscreen mode Exit fullscreen mode

Nesse caso, eu quero arquivos com qualquer nome, mas que tenham as extensões .conf e .db.

É possível fazer várias combinações entre esse recurso para atender ao que você deseja.

Lembre-se que letras maiúsculas e minúsculas são caracteres diferentes aqui (case-sensitive).

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .