O comando find em Linux é utilizado para procurar ficheiros e diretórios em diretórios especificados com base em vários critérios. Este comando é um dos utilitários mais poderosos e difundidos no Linux.
O formato básico do comando find é o seguinte:
find [path] [expression]
onde:
path
é o caminho para o diretório no qual procurar por arquivos (por padrão, find procura no diretório atual e em todos os seus subdiretórios);
expressão
é uma expressão que define os critérios de pesquisa de ficheiros.
A seguir estão alguns dos critérios mais comuns de pesquisa de arquivos que podem ser usados em uma expressão do comando find:
-nome
: pesquisa arquivos pelo nome. Por exemplo:
find /home/user -name myfile.txt
-type
: procura ficheiros de um tipo específico (por exemplo, f
para ficheiros regulares ou d
para diretórios). Por exemplo:
find /home/user -type f
-size
: procura ficheiros por tamanho. Por exemplo:
find /home/user -size +10M
-mtime
: procura ficheiros por hora da última modificação. Por exemplo:
find /home/user -mtime -7
-user
e -group
: pesquisa ficheiros por proprietário e grupo. Por exemplo:
find /home/user -user bob -group users
Pode utilizar os operadores lógicos -e
, -ou
e -não para
combinar vários critérios de pesquisa numa única expressão.
Por exemplo, o seguinte comando encontra todos os ficheiros no diretório /home/user
que tenham sido modificados nos últimos 7 dias e que tenham mais de 10 megabytes:
find /home/user -type f -mtime -7 -size +10M
O comando find também permite executar várias ações nos arquivos encontrados usando a opção -exec
. Por exemplo, pode eliminar todos os ficheiros que foram modificados há mais de 30 dias, utilizando o seguinte comando:
find /home/user -type f -mtime +30 -exec rm {} ;
Aqui, a opção -exec
executa o comando rm
para cada arquivo encontrado e usa {}
para substituir o nome do arquivo no comando.
O comando find
é uma ferramenta poderosa para encontrar ficheiros e diretórios no Linux, que pode ser utilizada para executar várias tarefas relacionadas com a gestão.
O comando find
suporta muitas outras opções que podem ser usadas para encontrar ficheiros com mais precisão:
-iname
: procura ficheiros pelo nome sem ter em conta as maiúsculas e minúsculas. Por exemplo:
find /home/user -iname myfile.txt
-regex
: procura ficheiros cujos nomes correspondem a uma determinada expressão regular. Por exemplo:
find /home/user -regex ".*.txt$"
-maxdepth
e -mindepth
: limitam a profundidade da pesquisa de ficheiros em subdirectórios. Por exemplo:
find /home/user -maxdepth 2 -type f
-prune
: exclui determinados diretórios da pesquisa. Por exemplo:
find /home/user -path /home/user/excluded -prune -o -type f -print
-print
: envia a lista de ficheiros encontrados para a saída padrão. Por exemplo:
find /home/user -type f -print
find
também suporta a pesquisa de arquivos por vários atributos, como permissões, atributos de arquivo, rótulos SELinux
e outros. Mais informações sobre essas opções podem ser encontradas na documentação do comando find
.
O comando pode procurar por arquivos e diretórios em todo o sistema de arquivos, o que pode levar muito tempo e recursos. Portanto, é importante ter cuidado ao usar este comando e certificar-se de que os critérios de pesquisa estão definidos corretamente para evitar encontrar arquivos desnecessários ou erros no sistema.