Pesquisa de site

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 de find
  • 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
  1. 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 que find desça até esse diretório. O operador -o (OR) permite que a pesquisa continue em outros diretórios e -print exibe os resultados.

  2. Usando a opção -prune para excluir um diretório

  3. 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 e dir5 dos resultados da pesquisa.

  4. Excluindo vários diretórios com o comando find

  5. 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.

  6. Excluindo diretórios por padrão de nome com find

  7. Combinando -prune com outras opções de localização: você pode combinar -prune com outras opções de find para refinar sua pesquisa.

    find . -path "./dir1" -prune -o -type f -name "*.txt" -print
  8. Este comando exclui dir1 e procura arquivos .txt em outros diretórios.

  9. 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
  10. Este comando exclui dir1 e dir5 e lista todos os arquivos em outros diretórios.

  11. Usando a opção -not: A opção -not também pode ser usada para exclusão.

    find . -not -path "./dir1/*" -print
  12. Este comando exclui todos os arquivos e diretórios em dir1. fusível de dados="22189504506">

  13. 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
  14. Este comando exclui dir2 dentro de dir1 se a profundidade for maior que 2.

  15. 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
  16. 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.