Cygwin: 'localizar / -name libstdc ++ - 6.dll' não exibe resultados

0

No Windows Explorer, quando pesquiso libstdc++-6.dll , ele retorna meia dúzia de resultados. Estou tentando fazer uma pesquisa de nome de arquivo semelhante no Cygwin com find , mas isso não mostra resultados.

find / -name libstdc++-6.dll

A minha sintaxe está correta?

Isso deve invocar o Cygwin find, pois which find retorna /bin/find .

Atualizar

find /c/strawberry/ -name libstdc++-6.dll funciona, mas não da raiz.

    
por mcandre 07.05.2013 / 18:51

1 resposta

1

Sua sintaxe está correta; a pegadinha aqui é um pouco estranha com a visão do sistema de arquivos do Cygwin.

No Cygwin, o diretório raiz / aponta para o que, no sistema de arquivos do Windows, é a raiz da instalação do Cygwin, que geralmente é c:\cygwin . Para acessar qualquer coisa fora disso, você pode ter que usar /cygdrive/[drive letter] ; por exemplo, o caminho do diretório c:\windows\system32 no Cygwin não é /c/windows/system32 , mas sim /cygdrive/c/windows/system32 .

Uma maneira comum de contornar esse incômodo é criar links simbólicos em / , o que aponta para várias letras de unidade em /cygdrive , por exemplo, %código%; se você puder acessar arquivos fora da raiz do Cygwin com caminhos como ln -s /cygdrive/c /c , é porque existem tais links simbólicos, sejam criados manualmente ou automaticamente.

Esse esquema funciona bem para a maioria das finalidades, mas nem todos os programas seguem automaticamente links simbólicos, e /c/windows/... é um programa desse tipo; find funciona porque você está iniciando find /c/strawberry/ ... off no lado 'distante' do link simbólico, mas find não porque começa no lado 'próximo' e não seguirá por padrão o find / ... symlink. Para produzir o comportamento desejado, passe a opção /c para localizar; -L deve apresentar os mesmos resultados que find -L / -name libstdc++-6.dll .

    
por 07.05.2013 / 19:18

Tags