PESQUISA E FILTRAGEM: FIND E GREP
find é usado para localizar arquivos por nome, tipo ou data. find /home -name "*.log" procura todos os arquivos de log no diretório /home; find . -type f -mtime -7 encontra arquivos modificados nos últimos 7 dias. A poderosa combinação de condições do find permite localizar rapidamente arquivos específicos mesmo em sistemas com muitos arquivos.

grep é usado para pesquisar conteúdo dentro de arquivos. grep "erro" arquivo.log filtra linhas que contêm "erro"; grep -r "palavra" /etc/ pesquisa recursivamente em diretórios. O grep suporta expressões regulares e, combinado com -i (ignorar maiúsculas), -n (mostrar número da linha) e outros parâmetros, torna a filtragem de logs mais precisa.

A verdadeira força dessas duas ferramentas está na combinação. find . -name "*.txt" -exec grep -l "importante" {} \; encontra todos os arquivos txt que contêm a palavra "importante"; ps aux | grep firefox verifica se o processo do Firefox está em execução. A saída de um comando vira a entrada de outro, concretizando a filosofia Unix de "compor pequenas ferramentas".

Para iniciantes, um erro comum é pesquisar o sistema inteiro com grep, o que é lento e gera muita saída irrelevante. Primeiro use find para reduzir o escopo e depois combine com grep para filtrar conteúdo, ou limite a pesquisa a /var/log ou ao diretório do projeto.

DICA: O grep, por padrão, diferencia maiúsculas de minúsculas. Se não tiver certeza da capitalização, adicione -i para ignorar maiúsculas. Para pesquisar grandes logs com contexto, use grep -A 3 -B 3 "erro" para mostrar as 3 linhas antes e depois da correspondência.

