GNU/Linux >> Tutoriels Linux >  >> Linux

Rechercher des fichiers dont les chemins d'accès contiennent plusieurs mots sans ordre spécifique entre eux ?

Je souhaite rechercher tous les fichiers dont le chemin contient plusieurs mots (word1 , word2 ), sans ordre particulier entre eux.
Exemples de fichiers correspondants :

word1bar/fooword2/myfile
fooword2/word1bar/myfile
fooword2/bar/word1myfile

Quelle commande peut résoudre la tâche ?

Je suppose qu'une commande comme celle-ci fonctionnera :

find . -regex regexpattern

Merci.

Ma solution avec locate is Améliorez la recherche de fichiers par noms de chemin avec le pipeline locate et grep

Réponse acceptée :

C'est difficile à faire avec un seul motif (regex ou shell), mais depuis find peut prendre plusieurs conditions, nous pouvons utiliser

find . -type f -path "*word1*" -path "*word2*" ...

Dans regex, vous devez spécifier toutes les différentes permutations des mots, comme .*word1.*word2.*|.*word2.*word1.* (ERE ou Perl RE uniquement), et cela explose rapidement si vous avez plus de deux mots à rechercher.


Linux
  1. Comment rechercher des fichiers par taille et extension ?

  2. Comment rechercher dans des fichiers spécifiques correspondant à un modèle ?

  3. Utilisez Find and Locate pour rechercher des fichiers sous Linux

  4. Comment rechercher des fichiers à l'aide de regex dans le script shell Linux

  5. Trouvez des fichiers et tarez-les (avec des espaces)

Comment rechercher des fichiers sous Linux avec la commande Find

Comment rechercher des fichiers à partir de la ligne de commande Linux

Comment trouver des fichiers contenant une chaîne de texte spécifique sous Linux

Trouver récursivement des fichiers avec une extension spécifique

gzip tous les fichiers sans les supprimer

Trouver l'interface pour l'itinéraire vers un hôte spécifique