De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 6 de abril de 2025
As expressões booleanas permitem que você combine várias condições apenas
em uma única execução do comando find. Isso oferece uma maneira extremamente
poderosa de refinar pesquisas de arquivos baseadas em múltiplos critérios.
| Operador | Descrição |
|---|---|
-and |
Este é o operador padrão e, às vezes, omisso (implícito), usado para combinar duas ou mais condições que precisam ser verdadeiras. |
-or |
Permite que uma das várias condições seja verdadeira para que o comando find retorne um resultado. |
-not |
Inverte a lógica, retornando arquivos que não atendem à condição especificada. |
A sintaxe para o uso de operadores booleanos é bastante simples:
$ find caminho [condição1] operador [condição2] operador [condição3] ...
1. Encontrar arquivos por tipo e nome
Vamos procurar arquivos que sejam ou arquivos de texto (.txt) ou arquivos de log (.log):
$ find /caminho -type f \( -name "*.txt" -or -name "*.log" \)
Neste caso, qualquer arquivo com extensão .txt ou .log será encontrado.
2. Exclusão de determinados arquivos
Digamos que queremos encontrar todos os arquivos que não tenham a extensão .bak:
$ find /caminho -type f -not -name "*.bak"
Aqui, apenas arquivos que não são arquivos de backup (.bak) serão retornados.
3. Combinar múltiplas condições
Suponha que você precisa encontrar diretórios modificados nos últimos 7 dias ou que tenham um tamanho maior que 100KB:
$ find /caminho -type d \( -mtime -7 -or -size +100k \)
Este comando retornará diretórios que satisfazem qualquer uma das condições.
O uso de expressões booleanas com o find aumenta significativamente o poder
e a flexibilidade das suas buscas. Além de fornecer um meio para executar
pesquisas mais refinadas, ele também minimiza a necessidade de execuções
múltiplas do comando find para condições diferentes.