¿Cómo puedo buscar un nombre comodín en todas las subcarpetas?


26

¿Cómo puedo buscar un nombre comodín en todas las subcarpetas? ¿Cuál sería el equivalente del comando DOS: dir *pattern* /sen * nix?

Respuestas:


40

Puedes usar find. Si, por ejemplo, desea encontrar todos los archivos y directorios que tenían abcden el nombre del archivo, puede ejecutar:

find . -name '*abcd*'

12

Zsh:

ls -ld -- **/*abcd*

Ksh93:

set -o globstar     # put this line in your ~/.kshrc
ls -ld -- **/*abcd*

Golpe ≥4:

shopt -s globstar   # put this line in your ~/.bashrc
ls -ld -- **/*abcd*

Yash

set -o extendedglob # put this line in your ~/.yashrc
ls -ld -- **/*abcd*

tcsh:

set globstar
ls -ld -- **/*abcd*

pez:

ls -ld -- **abcd*

(cuidado con algunas de esas conchas seguirá enlaces simbólicos al descender el árbol de directorios, algunos de los que no les gusta zsh, yasho tcshtener ***/*abcd*que hacerlo).

Portátil (excepto para sistemas muy antiguos; OpenBSD tardó mucho tiempo pero finalmente es compatible exec … +desde 5.1):

find . -name '*abcd*' -exec ls -ld {} +

No es POSIX pero funciona en * BSD, Linux, Cygwin, BusyBox:

find . -name '*abcd*' -print0 | xargs -0 ls -ld

Tenga en cuenta que, excepto en algunos BSD, si no se encuentra un archivo coincidente, ls -ldse ejecutará sin argumentos, por lo que se enumerará .. Con algunas xargsimplementaciones, puede usar la -ropción para evitar eso.


¿Qué hace shopt -s globstar?
carpincho

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.