10 Formas de Utilizar o Comando find do Sistema LINUX que você nunca imaginou que iria precisar saber

JUNTE-SE A MAIS DE 110.000 PESSOAS QUE JÁ TEM UMA CÓPIA

Ubuntu: Iniciando com Linux de maneira prática e rápida

Compartilhe este post

Share on facebook
Share on linkedin
Share on twitter
Share on email

Quando se trabalha com o sistema Linux, é muito importante compreender a utilização dos seus comandos. Embora o Linux possibilite trabalhar com a interface gráfica — assim como no Windows — e isso possa parecer mais prático, a utilização das linhas de comandos promove mais agilidade e eficácia para realizar tarefas.

Neste post, falaremos sobre um dos comandos mais usados do sistema Linux: o comando find. Esse comando permite ao usuário fazer buscas e localizar listas de arquivos/diretórios correspondentes às condições especificadas no momento da pesquisa.

linux-comando-find

Uma das funcionalidades mais interessantes do comando find são os critérios de busca, dos quais podemos ressaltar: tamanho; data/horário de modificação; formato; permissões; usuários etc.

Ou seja, são diversos os critérios, que facilitam bastante a tarefa de localizar um arquivo que seria difícil de acessar navegando pelas pastas. Além disso, vale ressaltar que o comando find está incluso, por padrão, na maioria das versões do Linux, não carecendo da instalação de packages.

Portanto, sem mais delongas, apresentaremos 10 exemplos práticos de como você pode utilizar o comando find em sua rotina. Confira!

1. Listar todos os arquivos contidos em um diretório e subdiretórios

Para exibir uma lista com todos os arquivos localizados em um determinado diretório, incluindo os arquivos armazenados nos subdiretórios, basta aplicar o comando find da seguinte forma:

$ find .

./exemplo.txt

./subpasta

./subpasta/comandofind.php

./audio.mp4

./exemplo2.php

2. Especificar um limite de subdiretórios a serem exibidos

Imaginemos uma situação em que o primeiro exemplo tenha sido aplicado e haja dezenas de subdiretórios que sendo exibidos na lista. No caso, você não precisa receber tantas informações, e então deseja que somente os primeiros subdiretórios sejam exibidos.

Para isso, estabeleça uma condição que defina o nível de “profundidade” na navegação dos subdiretórios por meio do maxdepth:

$ find ./test -maxdepth 1 -name *.php

./test/comandofind.php

Caso a intenção seja a de localizar arquivos com um maior nível de profundidade, este nível deverá ser especificado logo após digitar “-maxdepth”. Exemplo:

$ find ./test -maxdepth 2 -name "*.php"

./test/subpasta/comandofind.php

./test/exemplo2.php

3. Combinar múltiplos critérios de busca

Estabelecer mais de um critério em uma mesma busca é mais simples do que se pode imaginar. Vamos supor que o usuário necessite localizar um arquivo chamado “comandofind.txt”, de forma que o “comandfind.php” não apareça — para isso, utiliza-se o inversion (!).

$ find ./test -name 'comandofind*' ! -name '*.php'

./test/comandofind.txt

É possível, também, aplicar a condição OR para estabelecer ainda mais critérios. Se o usuário quiser localizar arquivos levando em conta os formatos “txt” e “php”, basta incluir o caractere “o” na linha de comando.

$ find -name '*.php' -o -name '*.txt'

./exemplo.txt

./subdir/comandofind.php

./exemplo2.php

./exemplo3.txt

4. Localizar somente arquivos ou somente diretórios

Nos exemplos anteriores, percebe-se que arquivos e diretórios são listados juntos em cada busca. Porém, é possível buscar somente por uma das duas coisas:

$ find ./test -name exemplo*

./test/exemplo.txt

./test/exemplo

Somente arquivos

$ find ./test -type f -name "exemplo*"

./test/exemplo.txt

Somente diretórios

$ find ./test -type d -name "exemplo*"

./test/exemplo

Perceba que, na busca por arquivos, basta incluir “-type f” antes de digitar o nome, enquanto na busca por diretório inclui-se o “-type d”. Não por acaso, as letras representam as iniciais para files (arquivos) e directories (diretórios).

5. Localizar arquivos ocultos

Até agora, nós explicamos como usar o comando find para encontrar arquivos comuns, tendo plena ciência de seus nomes ou formatos. Mas como localizar os arquivos ocultos nos diretórios?

Muitas vezes, nem sabemos que existe um arquivo oculto — o que nos leva a desconhecer o nome do mesmo. Porém, apesar desse “pequeno” detalhe, encontrar esses arquivos é muito fácil.

Basta especificar que está buscando apenas arquivos (-type f) e usar um ponto final (.) no lugar do nome. Veja:

$ find ~ -type f -name ".*"

6. Encontrar arquivos com determinadas permissões

Se o termo “permissões” ainda não ficou muito claro para você, não se preocupe! No sistema Linux, as permissões são muito comuns, e são utilizadas justamente para definir os usuários que podem acessar determinados arquivos e diretórios.

E, como mencionamos no início do texto, o comando find pode ser utilizado para localizar arquivos e diretórios a partir de uma determinada permissão. Supondo que a permissão em questão seja a “permissão 0740”, o comando para localizar arquivos deve ser feito da seguinte forma:

$ find . -type f -perm 0740

./exemplo.txt

./subpasta/comandofind.php

./audio.mp4

./exemplo2.php

Lembra-se do inversion, a condição representada pelo ponto de exclamação? Ela pode ser aplicada para detectar possíveis erros de segurança ligados às permissões.

$ find . -type f -perm 0655

./exemplo.txt

./subpasta/comandofind.php

./audio.mp4

./exemplo2.php

7. Encontrar arquivos com base em proprietários

Assim como é possível utilizar o comando find para localizar arquivos a partir de uma permissão, o mesmo pode ser feito a partir de um determinado grupo ou owner.

Exemplo: para localizar arquivos pertencentes ao diretório de um determinado usuário chamado Maria, basta utilizar a condição “–user” e digitar o nome do usuário.

$ find . –user maria

./exemplo.txt

./subpasta/comandofind.php

./audio.mp4

./exemplo2.php

Para estabelecer um critério de busca, basta inseri-lo logo após o nome do usuário. Exemplo:

$ find . –user maria –name ‘*.txt’

8. Localizar arquivos pertencentes a um grupo

Se a ideia for usar o comando find com base em um determinado grupo (chamado “adm”, por exemplo), basta escrever a seguinte linha:

# find /var/www –group adm

9. Pesquisar por arquivos e diretórios com base em períodos de modificação

Uma das funcionalidades mais úteis do comando find é a pesquisa baseada em data e hora de modificação. Nos aspectos de segurança, podemos considerar esse critério fundamental. A seguir, apresentaremos alguns exemplos.

Localizar arquivos modificados há ‘N’ dias

Vamos supor que o usuário em questão deseje acessar arquivos modificados há 5 dias.

# find / -ntime 5

Localizar arquivos acessados há ‘N’ dias

Para isso, basta trocar o “–ntime” por “-atime”.

# find / -atime 5

Localizar arquivos modificados entre X e Y dias atrás

Se, por exemplo, o usuário precisar localizar arquivos modificados entre 30 e 90 dias atrás, basta digitar:

# find / -mtime +30 –mtime -90

10. Localizar arquivos com base no tamanho

Para utilizar o tamanho do arquivo como critério, utiliza-se o “-size” no comando find. Utilizemos como exemplo a busca por arquivos de 40MB:

# find / -size 40M

E então, o que achou desses comandos do LINUX utilizando o find ? Aproveite também para participar do meu mini-treinamento de LINUX, pra  você dominar por completo esse poderoso sistema!

Compartilhe este post

Share on facebook
Share on linkedin
Share on twitter
Share on email

Artigos Recentes

Aprenda a dominar o Linux de uma vez por todas

Aprenda a dominar o Linux de uma vez por todas