Pasta de localização do Linux dentro de subpastas

19

Estou tentando encontrar um diretório chamado 480debugerroraninhado em diretórios filho. Não sei o caminho exato ou mesmo se tenho a ortografia exata do diretório que quero encontrar.

Existe um comando do Linux para localizar diretórios com um prefixo ou sufixo especificado, por exemplo, diretórios com o nome "debug" ou "debug error", com algum prefixo ou sufixo desconhecido?

Bharanikumar
fonte
2
Você pode tentar locate(localiza arquivos) ou find(localiza arquivos).
Miku
encontrar -type f -name * ummy ... mas não obter
3
Você precisa do tipo d . fprocura por arquivos
thkala 21/01

Respostas:

16

find é o que você precisa:

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

ou

$ find -type d -name '480debugerror'

se você tiver certeza sobre o nome da pasta.

thkala
fonte
8
find . -type d \( -iname '*error*' -o -iname '*debug*' \) 
Zsolt Botykai
fonte
1
locate -i "480debugerror"

irá verificar um banco de dados que lista todos os arquivos indexados no seu PC. Costumo ter cenários como esse e, por isso, procuro:

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

que encontra todos os arquivos que têm em seu caminho (independentemente do caso [é o que -i significa]) "debug" e "log" (caso você não saiba, o | grepmeio pesquisará nos resultados que a localização produz)

A vantagem de usar a localização sobre localização é que a localização produzirá uma saída muito mais rápida (já que está apenas verificando um banco de dados), mas se o arquivo / pasta não estiver indexado, não encontrará nada. (para atualizar o banco de dados que você pode usar sudo updatedb)

jcuenod
fonte
Somente se você tiver slocateinstalado. Algum ambiente de produção não :-(
Zsolt Botykai
Verdade, mas se uma opção que eu diria que é superior ao encontrar ...
1

Na festança,

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

pesquisa recursivamente por diretórios com nomes contendo 480, depuração ou erro.

user2394284
fonte