Pregunta ¿Cómo puedo encontrar recursivamente todos los archivos en las carpetas actuales y subcarpetas en función de la coincidencia de comodines?


¿Cómo puedo encontrar recursivamente todos los archivos en las carpetas actuales y subcarpetas en función de la coincidencia de comodines?


1202
2018-05-05 23:01


origen


Respuestas:


Utilizar encontrar para eso:

find . -name "foo*"

find necesita un punto de partida, y el . (punto) apunta al directorio actual.


1788
2018-05-05 23:03



El hallazgo de tuberías en grep suele ser más conveniente; te da el poder completo de las expresiones regulares para la coincidencia de comodines arbitrarios.

Por ejemplo, para buscar todos los archivos con cadena "foo" insensible a mayúsculas y minúsculas en el nombre del archivo:

~$ find . -print | grep -i foo

164
2017-08-15 06:56



find encontrará todos los archivos que coinciden con un patrón:

find . -name "*foo"

Sin embargo, si quieres una imagen:

tree -P "*foo"

¡Espero que esto ayude!


105
2018-05-05 23:15



find -L . -name "foo*"

En algunos casos, he necesitado el parámetro -L para manejar enlaces de directorio simbólicos. Por defecto, los enlaces simbólicos son ignorados. En esos casos, fue bastante confuso ya que cambiaría el directorio a un subdirectorio y vería el archivo que coincide con el patrón, pero find no devolvería el nombre del archivo. El uso de -L resuelve ese problema. Las opciones de enlace simbólicas para encontrar son -P -L -H


16
2018-01-14 02:47



Si cuentas con soporte una nueva opción globbing (habilitarlo por: shopt -s globstar), puedes usar:

echo **/*foo*

para encontrar cualquier archivo o carpeta recursivamente. Esto es compatible con Bash 4, zsh y shells similares.


Personalmente tengo definida esta función de shell:

f() { find . -name "*$1*"; }

Nota: La línea anterior se puede pegar directamente al intérprete de comandos o agregarse a la de su usuario ~/.bashrc archivo.

Entonces puedo buscar cualquier archivo escribiendo:

f some_name

Aunque es casi lo mismo que usar fd utilidad.


16
2018-01-13 16:23



find <directory_path>  -type f -name "<wildcard-match>"

En la coincidencia de comodines puede proporcionar la cadena que desea emparejar, p. * .c (para todos los archivos c)


15
2018-02-05 13:32



Puedes usar:

# find . -type f  -name 'text_for_search'

Si quieres usar el uso de REGX -iname

# find . -type f  -iname 'text_for_search'

6
2017-10-29 16:09