Estou usando o cygwin na minha máquina windows. Estou tentando fazer uma busca e está dando formato de parâmetro incorreto. Por que é que?
$ ls
bootstrap.jar
catalina-tasks.xml
catalina.bat
catalina.sh
commons-daemon-native.tar.gz
commons-daemon.jar
cpappend.bat
digest.bat
digest.sh
setclasspath.bat
setclasspath.sh
shutdown.bat
shutdown.sh
startup.bat
startup.sh
tomcat-juli.jar
tomcat-native.tar.gz
tool-wrapper.bat
tool-wrapper.sh
version.bat
version.sh
$ find . -name "version.sh"
FIND: Parameter format not correct
- Devo instalar alguma coisa durante a instalação do cygwin ou estou fazendo algo errado?
/usr/bin/find
vez defind
/usr/bin
no caminho, acho que o shell usa o primeirofind
encontrado no $ PATH, que é o sistema. Eu estava prestes a removê-lo (porque não precisava dele mesmo) , mas acho que alguns scripts aleatórios do sistema podem esperar exatamente issofind
. Portanto, corrigir isso da maneira certa é escrever um aliasalias find="/usr/bin/find"
no~/.bashrc
(ou em qualquer shell que você esteja usando) .O find está instalado? O que "qual encontrar" retorna? Lembre-se de que o Windows possui uma linha de comando interna que o Cygwin acabaria usando se sua própria localização fosse mia.
fonte
A resposta de Gilles está correta, pois a versão do Windows para o
find
comando vem antes da versão do cygwin e, portanto, está sendo chamada.Colocar o Cygwin à frente, no entanto, significa que qualquer arquivo em lotes que use o
find
comando windows agora chamará ofind
comando cygwin , que pode não ser o que você deseja.A maneira mais simbiótica de ambos trabalharem, na minha opinião, é fazer o seguinte:
find
comando cygwin e renomeie / copie-o paralfind.exe
(ou qualquer outro nome que não esteja no PATH do Windows)~/.bashrc
arquivo, adicione a linhaalias find=lfind
Dessa forma, quando você executar a
find
partir do terminal cygwin, usará a versão cygwin, mas os arquivos em lote usarão a versão windows.Nota: Você ainda precisará do diretório cygwin bin no seu PATH, mas agora ele pode estar mais distante do diretório do sistema Windows.
fonte
Quando você está instalando o Cygwin, ele não instala todos os pacotes possíveis, a menos que você solicite. Para adicionar um pacote desejado, dê uma olhada na explicação aqui no Superusuário.
Ou apenas execute as seguintes ações:
fonte
Aqui estão os GNU-utils como portas win32 nativas . Eles não precisam que o cygwin seja executado e vêm com um shell (sh.exe), incluindo grep, sed, awk, find, less, cat, tac e muito mais.
O problema com o caminho do Windows persistirá, mas talvez você renomeie a localização para
gfind
(gnu-find) ou parasearch
, para torná-la mais facilmente acessível, e adicione o diretório coreutils ao seu PATH.fonte