Recherche de site Web

Comment exclure des répertoires de la recherche de la commande Find sous Linux


Dans cet article, nous allons approfondir les méthodes permettant d’exclure explicitement les répertoires de la recherche de la commande find sous Linux. La commande find est un utilitaire puissant pour rechercher des fichiers et des répertoires dans une hiérarchie de répertoires. Cependant, dans certains cas, vous pouvez exclure certains annuaires de votre recherche afin d’accélérer le processus ou d’éviter des résultats non pertinents. Nous allons explorer différentes options et fournir des exemples pratiques en utilisant une structure de répertoire sandbox.

Dans ce tutoriel, vous allez apprendre :

  • Comment utiliser l’option -prune pour exclure des répertoires
  • Combiner -prune avec d’autres options de recherche
  • Utilisation de plusieurs options -prune pour les exclusions complexes
  • Comment exclure des répertoires à l’aide de chemins d’accès
  • Exclusion des répertoires en fonction de modèles
  • Utilisation avancée avec des opérateurs logiques
  • Exemples concrets avec différents besoins d’exclusion
  • Comprendre l’impact des exclusions sur les performances

Exclusion des répertoires de la recherche de la commande Find

Lorsque vous utilisez la commande find, vous devrez peut-être exclure des répertoires spécifiques de vos résultats de recherche. Cela peut être particulièrement utile lorsqu’il s’agit de grandes structures de répertoires ou lorsque vous souhaitez vous concentrer sur des zones spécifiques de votre système de fichiers. Voici quelques méthodes pour y parvenir, illustrées par des exemples basés sur la structure de bac à sable suivante :

.
├── dir1
│   ├── dir2
│   │   └── dir3
│   │       └── file2
│   └── file1
├── dir4
│   └── file3
└── dir5
    └── dir6
        ├── dir4
        │   └── file4
        └── file4
  1. Utilisation de -prune pour exclure un répertoire : L’option -prune peut être utilisée pour exclure un répertoire et son contenu de la recherche.

    find . -path "./dir1" -prune -o -print

    Cette commande exclura dir1 et son contenu des résultats de recherche. L’option -path spécifie le répertoire à exclure, et l’option -prune empêche find de descendre dans ce répertoire. L’opérateur -o (OR) permet de poursuivre la recherche dans d’autres répertoires et -print affiche les résultats.

  2. Exclusion de plusieurs répertoires : vous pouvez exclure plusieurs répertoires en combinant plusieurs options -prune.

    find . -path "./dir1" -prune -o -path "./dir5" -prune -o -print

    Cette commande exclut dir1 et dir5 des résultats de recherche.

  3. Exclusion de répertoires par modèle de nom : utilisez l’option -name pour exclure les répertoires qui correspondent à un modèle spécifique.

    find . -name "dir4" -prune -o -print

    Cette commande exclut tous les répertoires nommés dir4 des résultats de recherche.

  4. Combiner -prune avec d’autres options de recherche : Vous pouvez combiner -prune avec d’autres options de recherche pour affiner votre recherche.

    find . -path "./dir1" -prune -o -type f -name "*.txt" -print
  5. Cette commande exclut dir1 et recherche .txt fichiers dans d’autres répertoires.

  6. Exclusion de répertoires à l’aide d’un modèle complexe : utilisez une combinaison d’options pour les exclusions plus complexes.

    find . \( -path "./dir1" -o -path "./dir5" \) -prune -o -type f -print
  7. Cette commande exclut à la fois dir1 et dir5 et répertorie tous les fichiers dans d’autres répertoires.

  8. Utilisation de l’option -not : L’option -not peut également être utilisée pour l’exclusion.

    find . -not -path "./dir1/*" -print

    Cette commande exclut tous les fichiers et répertoires sous dir1.

  9. Exclusion des répertoires en fonction de la profondeur : contrôlez la profondeur de la recherche pour exclure les répertoires plus profonds.

    find . -maxdepth 2 -path "./dir1/dir2" -prune -o -print
  10. Cette commande exclut dir2 à l’intérieur de dir1 si la profondeur est supérieure à 2.

  11. Utilisation avancée avec des opérateurs logiques : combinez des opérateurs logiques pour des exclusions avancées.

    find . -path "./dir1" -prune -o -type f \( -name "*.sh" -o -name "*.py" \) -print
  12. Cette commande exclut dir1 et recherche les fichiers .sh et .py dans d’autres répertoires.

Conclusion

L’exclusion de répertoires de la recherche de la commande find peut rationaliser considérablement vos recherches de fichiers et améliorer l’efficacité. En comprenant et en utilisant des options telles que -prune, -path et les opérateurs logiques, vous pouvez personnaliser vos recherches pour répondre à des besoins spécifiques et éviter les résultats non pertinents. Exercez-vous avec les exemples fournis et adaptez-les à vos propres structures de répertoires et à vos exigences de recherche.

Articles connexes: