GNU/Linux >> Tutoriales Linux >  >> Linux

¿Buscar archivos cuyos nombres de ruta contengan varias palabras sin un orden específico entre ellas?

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.


Linux
  1. ¿Grep para cadenas múltiples en archivos y luego listar los archivos en orden de tamaño?

  2. Cómo buscar archivos usando expresiones regulares en el script de shell de Linux

  3. Encuentre archivos y péguelos (con espacios)

  4. linux:busque archivos de tipo *.php recientemente modificados

  5. ¿Cómo puedo buscar archivos y comprimirlos en un archivo zip?

Cómo encontrar archivos en Linux con el comando Buscar

Cómo buscar archivos desde la línea de comandos de Linux

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Encuentra archivos creados entre un rango de fechas

Cómo encontrar archivos que no contienen una cadena de búsqueda determinada

Encuentra la interfaz para la ruta a un host específico