Como excluir diretórios da pesquisa de comando Find no Linux
Neste artigo, iremos nos aprofundar nos métodos para excluir explicitamente diretórios da pesquisa do comando find
no Linux. O comando find
é um utilitário poderoso para pesquisar arquivos e diretórios dentro de uma hierarquia de diretórios. No entanto, existem cenários em que você pode querer excluir determinados diretórios da sua pesquisa para acelerar o processo ou evitar resultados irrelevantes. Exploraremos diferentes opções e forneceremos exemplos práticos usando uma estrutura de diretórios sandbox.
Neste tutorial você aprenderá:
- Como usar a opção
-prune
para excluir diretórios - Combinando
-prune
com outras opções defind
- Usando múltiplas opções
-prune
para exclusões complexas - Como excluir diretórios usando nomes de caminho
- Excluindo diretórios com base em padrões
- Uso avançado com operadores lógicos
- Exemplos do mundo real com diferentes necessidades de exclusão
- Compreender o impacto das exclusões no desempenho
Excluindo diretórios da pesquisa do comando Find
Ao trabalhar com o comando find
, pode ser necessário excluir diretórios específicos dos resultados da pesquisa. Isto pode ser particularmente útil ao lidar com grandes estruturas de diretórios ou quando você deseja focar em áreas específicas do seu sistema de arquivos. Aqui estão alguns métodos para conseguir isso, ilustrados com exemplos baseados na seguinte estrutura de sandbox:
.
├── dir1
│ ├── dir2
│ │ └── dir3
│ │ └── file2
│ └── file1
├── dir4
│ └── file3
└── dir5
└── dir6
├── dir4
│ └── file4
└── file4
Usando -prune para excluir um diretório: A opção
-prune
pode ser usada para excluir um diretório e seu conteúdo da pesquisa.find . -path "./dir1" -prune -o -print
Este comando excluirá
dir1
e seu conteúdo dos resultados da pesquisa. A opção-path
especifica o diretório a ser excluído, e a opção-prune
evita quefind
desça até esse diretório. O operador-o
(OR) permite que a pesquisa continue em outros diretórios e-print
exibe os resultados.Excluir vários diretórios: você pode excluir vários diretórios combinando várias opções de
-prune
.find . -path "./dir1" -prune -o -path "./dir5" -prune -o -print
Este comando exclui
dir1
edir5
dos resultados da pesquisa.Excluir diretórios por padrão de nome: Use a opção
-name
para excluir diretórios que correspondam a um padrão específico.find . -name "dir4" -prune -o -print
Este comando exclui todos os diretórios denominados
dir4
dos resultados da pesquisa.Combinando -prune com outras opções de localização: você pode combinar
-prune
com outras opções defind
para refinar sua pesquisa.find . -path "./dir1" -prune -o -type f -name "*.txt" -print
Excluir diretórios usando um padrão complexo: use uma combinação de opções para exclusões mais complexas.
find . \( -path "./dir1" -o -path "./dir5" \) -prune -o -type f -print
Usando a opção -not: A opção
-not
também pode ser usada para exclusão.find . -not -path "./dir1/*" -print
Excluir diretórios com base na profundidade: controle a profundidade da pesquisa para excluir diretórios mais profundos.
find . -maxdepth 2 -path "./dir1/dir2" -prune -o -print
Uso avançado com operadores lógicos: combine operadores lógicos para exclusões avançadas.
find . -path "./dir1" -prune -o -type f \( -name "*.sh" -o -name "*.py" \) -print
Este comando exclui dir1
e procura arquivos .txt
em outros diretórios.
Este comando exclui dir1
e dir5
e lista todos os arquivos em outros diretórios.
Este comando exclui todos os arquivos e diretórios em dir1
. fusível de dados="22189504506">
Este comando exclui dir2
dentro de dir1
se a profundidade for maior que 2.
Este comando exclui dir1
e procura arquivos .sh
e .py
em outros diretórios.
Conclusão
Excluir diretórios da pesquisa do comando find
pode agilizar significativamente suas pesquisas de arquivos e melhorar a eficiência. Ao compreender e utilizar opções como -prune
, -path
e operadores lógicos, você pode personalizar suas pesquisas para atender a necessidades específicas e evitar resultados irrelevantes. Pratique com os exemplos fornecidos e adapte-os às suas próprias estruturas de diretório e requisitos de pesquisa.