Bem Vindo!

Esse é o canal de comunicação entre você, internauta, cliente, parceiro com a 2XT. Esse espaço tem o objetivo de manter informado todos os profissionais que estão de alguma forma ligados a nossa empresa.
Obrigado pela visita.

janeiro
2009

19

Dicas de Linux – Find

Tags : , , ,

Um  comando que ajuda muito um administrador Linux é o comando find. Este artigo visa ensinar o basico para que você possa encontar o que procura dentro do sistema de arquivos do seu Linux.

O find é uma aplicação feita para localizar arquivos dentro do sistema de arquivos, mas devido a sua versatilidade pode ser usado para redirecionar o resultado da busca para outras aplicações.
O comando find é descrito da seguinte forma, primeiro você digita find, depois o local aonde sera feita a procura, depois o filtro da procura. Abaixo um exemplo simples:

$find /home -name  teste.txt

O comando acima vai procurar no diretório /home  pelo arquivo de nome teste.txt.

Detetive

Filtros:

Os filtros são responsáveis por dizer ao find o que ele deve procurar, o find pode procurar com filtros variados, não apenas por nomes, abaixo temos listados os básicos:

-name  : procura por nome
-iname : Também procura por nome, mas não é case sensitive ( ignora maiúsculos e minúsculos )

-size : procura por arquivo de acordo com o tamanho, pode ser em kbytes o megabytes, veja os exemplos:

$find  /tmp  -size  -100k
O comando acima procura em /tmp todos os arquivos com 100k bytes ou menos.

$find  /tmp -size +200M
O comando acima procura em /tmp os arquivos com mais de 200M bytes .

Como podemos ver de acordo com o sinal na frente da quantidade de bytes é possível escolher arquivos com mais ou menos bytes que a quantidade definida.

-atime : numero de dias em que o arquivo foi acessado.
-amin: o numero de minutos em que o arquivo foi acessado.
-mtime: numero de dias que o arquivo foi alterado.
-mmin: numero de minutos em que o arquivo foi alterado.
-ctime: numero de dias que os atributos do arquivo forma alterados.
-cmin: numero de minutos em que os atributos do arquivo foram alterados.

Veja os exemplos:

$find  /home  -atime -2
Com o comando acima procuramos os arquivos acessados em menos de dois dias

$find /home -mmin -10
Com o comando acima procuramos os arquivos alterados em menos de 10 minutos

$find . -mtime +10
Com o comando acima procuramos no diretório corrente , graças ao “.” todos os arquivos que foram alterados a mais de 10 dias.

Um pouco mais avançado:

Agora que já sabemos o básico , vamos fazer algumas coisas mais avançadas e bem úteis . Por exemplo, é possível usar vários filtros de uma só vez, como no exemplo:

$ find /home/usuario/Musicas -name ‘*.ogg”  -size -2M
Com o comando acima procuramos todos os arquivos com extensão  ogg  e com tamanho menor que 2MB.

Se você precisar que outro programa processe o resultado da busca? A função exec pode redirecionar a saída do find para outro programa:

$find /home -exec grep -l “maria” {} \;
O comando acima envia o resultado da busca, que no caso como não tem filtro vai retornar todos arquivos, para o comando grep, que com a opção -l lista os arquivos que contem a palavra “maria”.

$find . -name ‘*.tmp’ -exec rm -rf {} \;
O comando acima procura todos os arquivos de extensão tmp e direciona para o arquivo

$find . -name  ‘*.odt’ | xargs tar -czvf doc.tar.gz
O comando acima compacta todos os arquivos encontrados na busca.

Espero que com esse artigo suas buscas fiquem mais fáceis no Linux. O find não é o único jeito de procurar arquivos no Linux pela linha de comando, mas é um dos mais versáteis.