Como posso pesquisar um nome curinga em todas as subpastas?


Respostas:


40

Você pode usar find. Se, por exemplo, você desejasse encontrar todos os arquivos e diretórios contidos abcdno nome do arquivo, você poderia executar:

find . -name '*abcd*'

12

Zsh:

ls -ld -- **/*abcd*

Ksh93:

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

Festança ≥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*

peixe:

ls -ld -- **abcd*

(cuidado com algumas dessas conchas vai seguir os links ao descer da árvore de diretórios, alguns daqueles que não gostam zsh, yashou tcshtêm ***/*abcd*de fazê-lo).

Portátil (exceto para sistemas muito antigos; o OpenBSD demorou muito tempo, mas finalmente suporta exec … +desde o 5.1):

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

Não é POSIX, mas funciona em * BSD, Linux, Cygwin, BusyBox:

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

Observe que, exceto em alguns BSDs, se nenhum arquivo correspondente for encontrado, ls -ldserá executado sem argumentos, assim será listado .. Com algumas xargsimplementações, você pode usar a -ropção para solucionar isso.


o que shopt -s globstar faz?
capybaralet

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.