Linux encuentra carpeta dentro de subcarpetas


19

Estoy tratando de encontrar un directorio llamado 480debugerroranidado en directorios secundarios. No sé la ruta exacta, o incluso si tengo la ortografía exacta del directorio que quiero encontrar.

¿Existe un comando de Linux para buscar directorios con un prefijo o sufijo dado, por ejemplo directorios con un nombre de "depuración" o "error de depuración", con algún prefijo o sufijo desconocido?


2
Puede probar locate(localiza archivos) o find(encuentra archivos).
miku

find -type f -name * ummy ... but not get

3
Necesitas -tipo d . fbusca archivos
thkala

Respuestas:


16

find es lo que necesitas:

$ find -type d -name '*debugerror*'

o

$ find -type d -name '480debugerror'

si está seguro del nombre de la carpeta



1
locate -i "480debugerror"

verificará una base de datos que enumera todos los archivos indexados en su PC. A menudo tengo escenarios como este y por eso hago búsquedas como:

locate -i "debug" | grep -i "log"

que encuentra todos los archivos que tienen en su ruta (independientemente del caso [eso es lo que significa -i]) "depurar" y "registrar" (en caso de que no lo sepa, la | grepbúsqueda de medios dentro de los resultados que localiza produce)

La ventaja de usar localizar sobre encontrar es que localizar producirá resultados mucho más rápido (ya que solo está verificando una base de datos) pero si el archivo / carpeta no está indexado, entonces no encontrará nada. (para actualizar la base de datos que puede usar sudo updatedb)


Solo si lo has slocateinstalado. Algunos entornos de producción no :-(
Zsolt Botykai

Es cierto, pero si fuera una opción, diría que es superior encontrar ...

1

En bash,

shopt -s nullglob globstar
echo **/*480*/
echo **/*debug*/
echo **/*error*/

busca recursivamente directorios con nombres que contengan 480, depuración o error.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.