Formas de pagamento Abuse

O comando find no Linux

04.03.2023, 02:43

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.

Formato do comando

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.

Opções adicionais

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.