¿Cómo busco en todos los subdirectorios para encontrar uno con un nombre determinado?

Respuestas:

18

Tratar find /dir -type d -name "your_dir_name".

Reemplace /dircon el nombre de su directorio y reemplace "your_dir_name"con el nombre que está buscando.

-type dle indicará findque busque solo directorios.

Vinz
fuente
1

Para una solución más general de encontrar uno o más directorios y buscar algo como encontrar direcciones de correo electrónico antiguas en repositorios git, observe el siguiente patrón:

find . -type d -name .git -print0|\
    xargs -0r -I {} find {} -type f -print0 |\
    xargs -0r grep -e '[email protected]'
hildred
fuente
1
echo **/target

o para obtener una coincidencia por línea:

printf %s\\n **/target

Esto funciona fuera de la caja en zsh. En bash, debe ejecutar shopt -s globstarprimero, y tenga en cuenta que esto también atraviesa enlaces simbólicos a directorios. En ksh93, debes ejecutar set -o globstarprimero.

Si desea hacer coincidir solo directorios o enlaces simbólicos con directorios, agregue un final /(es decir **/target/). En zsh, para hacer coincidir solo directorios pero no enlaces simbólicos a directorios, haga eso **/target(/).

En cualquier shell, puede usar el findcomando:

find . -name target

En Linux y Cygwin, el .es opcional. Si desea hacer coincidir solo directorios, agregue -type d.

Gilles 'SO- deja de ser malvado'
fuente