Buscando arquivos no Linux: find

Amigos! Dando continuidade a série de artigos para ajudar quem trabalha com PHP no Linux hoje irei abordar um comando muito simples, o find!

Como o próprio nome já diz, este comando se destina a buscar um determinado arquivo dentro da árvore de diretórios do Linux! Veja um exemplo em que estaremos buscando um arquivo chamado “biblioteca”:

find -name biblioteca

Como eu não especifiquei o local da busca ela partirá do diretório onde eu estou, e o comando buscará todos os arquivos com o nome exatamente como “biblioteca”. Mas você também pode especificar um diretório para a pesquisa, lembrando que este comando é recusivo, ou seja, a busca também se dará nos subdiretórios:

find /home/php/ -name biblioteca

No entanto, na maioria das vezes nós não sabemos ao certo qual o nome do arquivo, então podemos usar o asterísco (*) antes ou depois do nome do arquivo, ou mesmo nos dois, veja:

find -name *biblioteca*

Dessa maneira o comando acima todos os arquivos, como por exemplo: teste_biblioteca, biblioteca.backup e teste_biblioteca.backup serão encontrados.

E vale lembrar que o comando find nãos e limita apenas a busca pelo nome do arquivo, você também pode buscar por: tipo, data de modificação, data de acesso e buscar pelo nome como case-insensitive. Veja os exemplos abaixo:

Busca por diretório (tipo: arquivo ou diretório):

find / -type d -name meu_diretorio

O comando acima irá buscar todos os diretórios (a partir da raiz “/”) que se chamem “meu_diretorio”, caso você deseje buscar apenas arquivos troque o “d”, que significa diretório por “f” de file.

Busca por data de modificação:

find / -type f -mtime +5

Neste comando estaremos buscando todos os arquivos a partir do diretório raiz que foram modificados a mais de 5 dias, caso você deseje buscar arquivos com menos de x dias de modificação, troque o sinal de “+” por “-“.

Buscar arquivos por data de acesso:

find /etc -type f -atime +20

O comando acima é muito interessante, por meio dele você pode descobrir se algum espertinho tem andando funçando nos seus arquivos, nele estamos buscando todos os arquivos dentro do diretório /etc que não foram acessados nos últimos 20 dias, assim se houver algum arquivo que foi, você saberá hehe.

Busca por nome “case-insensitive”:

find /home -iname JqUeRy.Js

Deixei esse para o final por ser uma dica valiosa, e só você que leu toda essa trabalheira merece hehe, eu considero mais útil que a busca só por name, mesmo porque nunca podemos saber se o arquivo continha caracteres em caixa alta no nome.

É isso ai! Abraços,

Tiago.

Tags:

Add a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *