¿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?
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*'
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.
globstar.