|
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. $find /home -name teste.txt O comando acima vai procurar no diretório /home pelo arquivo de nome teste.txt.
|
|
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.

