Tutorial Linux - comando find

O comando find é usado para pesquisar arquivos e diretórios. Ele possui vários filtros para refinar a busca, como nome, tipo de arquivo, data de criação, tamanho, dono e outros.



Pesquisar arquivos pelo nome usando o find

Para pesquisar todos os arquivos com o nome "monografia.doc" no diretório atual e sub-diretórios use o parâmetro "-name":

find -name monografia.doc

Pesquisar arquivos em um diretório especifico

Para pesquisar os arquivos do diretório /home/joao que tenham o nome monografia.doc, digite:

find /home/joao -name monografia.doc

Pesquisar arquivos ignorando letras maiúscula ou minúsculas

Para pesquisar os arquivos do diretório /home/joao com o nome monografia.doc tanto com letras maiúsculas quanto minusculas, use o parâmetro "-iname":

find /home/joao -iname monografia.doc

Pesquisar apenas diretórios com o find

Para pesquisar todos os diretórios com o nome "filmes", use o parâmetro "-type d"

find / -type d -name filmes

Pesquisar apenas arquivos com o find

Para pesquisar todos os arquivos (apenas arquivos) com o nome iron-man.avi, use o parâmetro "-type f"

find / -type f -name iron-man.avi

Pesquisar todos os arquivos com uma extensão especifica

Para pesquisar todos os arquivos com a extensão .doc, o pode ser usado caracteres coringa (*) junto com a extensão desejada:

find . -type f -name "*.doc"

Pesquisar todos os arquivos com uma permissão especifica

O comando abaixo mostra dos os arquivos com a permissão 777

find . -type f -perm 0777 -print

Pesquisar todos os arquivos com permissão apenas de leitura

O comando abaixo mostra todos os arquivos com permissão de leitura para o usuário:

find / -perm /u=r

Pesquisar todos os arquivos executáveis

O comando abaixo pesquisa todos os arquivos com permissão de execução para todos usuários:

find / -perm /a=x

Pesquisar e remover um arquivo específico, no diretório atual

O comando find pode ser usado com o parâmetro "-exec" para executar um comando usando a lista de arquivos encontrados pelo find como argumento. No exemplo abaixo, todos os arquivos encontrados pelo find com o nome de "relatório_janeiro.doc" serão removidos, usando o comando "rm":

find . -type f -name "relatorio_janeiro.doc" -exec rm -f {} \;

Pesquisar e remover vários arquivos

Um outro exemplo do uso do parâmetro "-exec" , desta vez removendo todos os arquivos encontrados com a extensão ".avi" :

find . -type f -name "*.avi" -exec rm -f {} \;

Pesquisar todos os arquivos de um determinado usuário

O find pode ser usado para pesquisar arquivos de um determinado usuário usando o parâmetro "-user":

find /home -user joao

Pesquisar todos os arquivos de um determinado grupo

Para pesquisar arquivos de um determinado grupo, user o parâmentro "-group":

find /home -group work

Pesquisar todos os arquivos modificados 30 dias atrás

Para pesquisar arquivos modificados a 30 dias atrás, use o parâmetro "-mtime". No caso abaixo, somente arquivos com 30 dias exatos de modificação que serão mostrados.

find / -mtime 30

Pesquisar todos os arquivos modificados a menos de 30 dias atrás

No caso abaixo, arquivos com menos de 30 dias de modificação serão mostrados:

find / -mtime -30

Pesquisar todos os arquivos modificados a mais de 30 dias

No caso abaixo, arquivos com mais de 30 dias de modificação serão mostrados:

find / -mtime +30

Pesquisar todos os arquivos modificados entre 50 dias e 100 dias atrás

Para definir um intervalo de modificação, pode ser usado mais de um parâmetro "-mtime":

find / -mtime +50 -mtime -100

Pesquisar todos os arquivos acessados 50 dias atrás

Para pesquisar a por data de acesso deve ser usado o parâmetro "-atime". No caso abaixo apenas os arquivos com 50 dias exatos de acesso serão mostrados:

find / -atime 50

Pesquisar todos os arquivos acessados a menos de 50 dias atrás

Para pesquisar arquivos com menos de 50 dias de acesso, digite:

find / -atime -50

Pesquisar todos os arquivos acessados a mais de 50 dias

Para pesquisar arquivos com mais de 50 dias de acesso, digite:

find / -atime +50

Pesquisar todos os arquivos alterados na ultima 1 hora

O parâmetro "-cmin" é usado para especificar o tempo em minutos do último alteração. No caso abaixo todos os arquivos com menos de 60 minutos de alteração serão mostrados:

find / -cmin -60

Pesquisar todos os arquivos acessados na ultima 1 hora

O parâmetro "-amin" é usado para especificar o tempo em minutos do último acesso. No caso abaixo todos os arquivos com menos de 60 minutos de acesso serão mostrados:

find / -amin -60

Pesquisar todos os arquivos de 100 megas

Para pesquisar por tamanho é usado o parâmetro "-size".

find / -size 100M

Pesquisar todos os arquivos maiores que 100 megas

Para pesquisar arquivos maiores que 100 megas use o parâmetro "-size" seguido do argumento +100M. Pode ser usado também k para Kilobytes ou G para Gigabytes.

find / -size +100M

Pesquisar todos os arquivos menores que 100 megas

Para pesquisar arquivos menores que 100 megas use o parâmetro "-size" seguido do argumento -100M.

find / -size -100M

Pesquisar todos os arquivos com tamanho entre 100 e 200 megas

Para pesquisar arquivos em um intervalo especifico, digite:

find / -size +100M -size -200M