Me gustaría buscar todos los archivos cuyas rutas contengan varias palabras (word1
, word2
), sin ningún orden particular entre ellos.
Ejemplos de archivos coincidentes son:
word1bar/fooword2/myfile
fooword2/word1bar/myfile
fooword2/bar/word1myfile
¿Qué comando puede resolver la tarea?
Supongo que algún comando como este funcionará:
find . -regex regexpattern
Gracias.
Mi solución con locate
es Mejorar la búsqueda de archivos por nombres de ruta con la canalización de localización y grep
Respuesta aceptada:
Es difícil hacerlo con un solo patrón (regex o shell), pero desde find
puede tomar múltiples condiciones, podemos usar
find . -type f -path "*word1*" -path "*word2*" ...
En expresiones regulares, debe especificar todas las diferentes permutaciones de las palabras, como .*word1.*word2.*|.*word2.*word1.*
(solo ERE o Perl RE), y eso explota rápidamente si tiene más de dos palabras que desea encontrar.