Vorrei cercare tutti i file i cui percorsi contengono più parole (word1
, word2
), senza alcun ordine particolare tra di loro.
Esempi di file corrispondenti sono:
word1bar/fooword2/myfile
fooword2/word1bar/myfile
fooword2/bar/word1myfile
Quale comando può risolvere il compito?
Immagino che un comando come questo funzionerà:
find . -regex regexpattern
Grazie.
La mia soluzione con locate
is Migliora la ricerca dei file in base ai percorsi con la pipeline locate e grep
Risposta accettata:
È difficile da fare con un singolo pattern (regex o shell), ma poiché find
può prendere più condizioni, possiamo usare
find . -type f -path "*word1*" -path "*word2*" ...
In regex dovresti specificare tutte le diverse permutazioni delle parole, come .*word1.*word2.*|.*word2.*word1.*
(solo ERE o Perl RE), e questo esplode rapidamente se hai più di due parole che vuoi trovare.