O comando find parece não funcionar no cygwin

10

Ao tentar executar comandos find no cygwin, continuo recebendo o erro

"FIND: Formato do parâmetro incorreto"

No entanto, os mesmos comandos são executados no linux. O que está acontecendo?

dggoldst
fonte

Respostas:

13

Você está usando o comando find do Windows, não o cygwin.

Isso fica claro se você digitar 'what find'

Para corrigi-lo, edite seu caminho (Propriedades do sistema -> Avançado -> Variáveis ​​de ambiente -> Variáveis ​​do sistema -> Caminho) e mova a entrada do cygwin para a frente do caminho. (Uma maneira fácil de fazer isso é copiar o caminho inteiro, colá-lo no bloco de notas, editá-lo lá e colá-lo de volta).

Conforme apontado nos comentários, outra rota é editar os scripts de inicialização do bash e alterar o caminho para lá. Eu diria até que esta é a solução preferida, pois agora encontrei um caso em que a versão de cygwins causou um problema pela primeira vez.

dggoldst
fonte
5
essa pode não ser a solução ideal; uma alternativa é editar os arquivos de inicialização do bash para acrescentar os caminhos do Cygwin ao caminho do sistema, em vez de anexá-los. a principal diferença é se você deseja ou não encontrar as versões do Cygwin primeiro ao executar comandos nos shells padrão do Windows CMD ou Explorer.
quack quixote 31/03
A cygwin está anexando seus próprios caminhos ao global. então é um OP muito estranho receber esse erro.
akira
Bom ponto charlatão!
dggoldst
2

Eu não conseguia executar o 'find' correto quando estava no shell de comando do Windows, e os ajustes do PATH não ajudaram. Mas isso funcionou:

bash
/usr/bin/find . -iname blahblah*
exit

O caminho explícito acionou o 'achado' certo e, por qualquer motivo, funciona apenas quando executado no bash.

DarenW
fonte
Isso funcionou melhor para mim. Eu estava criando um script que poderia ser executado em várias máquinas que já tinham o bash. Alguns tinham o caminho bash antes do \ Windows \ System32, mas outros o tinham depois. Além disso, o comando do Windows "where find" mostra todos os "find" s em ordem de caminho.
PseudoNoise