Estoy usando Cygwin en mi máquina Windows. Estoy tratando de hacer una búsqueda y está dando formato de parámetro incorrecto. ¿Porqué es eso?
$ 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
- ¿Debo instalar algo mientras instalo cygwin o estoy haciendo algo mal?
/usr/bin/find
lugar defind
/usr/bin
en el camino, supongo que el shell utiliza el primerofind
encontrado en $ PATH, que es el sistema. Estaba a punto de eliminarlo (porque de todos modos no lo necesitaba) , pero supongo que algunos scripts de sistema aleatorios podrían esperar estofind
. Por lo tanto, la fijación de este el camino correcto es escribir un aliasalias find="/usr/bin/find"
en~/.bashrc
(o lo que sea shell que esté utilizando) .¿Está instalado find? ¿Qué devuelve "cuál encontrar"? Recuerde que Windows tiene una línea de comando integrada para encontrar que Cygwin terminaría usando si su propio hallazgo es mia.
fuente
La respuesta de Gilles es correcta, ya que la versión de Windows del
find
comando viene antes que la versión de cygwin, y por eso se llama.Sin embargo, poner a Cygwin por delante significará que cualquier archivo por lotes que use el
find
comando de Windows ahora llamará alfind
comando cygwin , que puede no ser lo que desea.La forma más simbiótica para que ambos trabajen, en mi opinión, es hacer lo siguiente:
find
comando cygwin y cámbiele el nombre / cópielolfind.exe
(o cualquier otro nombre que no esté en la RUTA de Windows)~/.bashrc
archivo agregue la líneaalias find=lfind
De esta manera, cuando ejecute
find
desde el terminal cygwin, usará la versión cygwin, pero los archivos por lotes usarán la versión de Windows.Nota: Aún necesitará el directorio bin de cygwin en su RUTA, pero ahora puede estar más atrás del directorio del sistema de Windows.
fuente
Cuando instala Cygwin, no instala todos los paquetes posibles a menos que se lo solicite. Para agregar un paquete deseado, eche un vistazo a la explicación aquí en Super Usuario.
O simplemente realice las siguientes acciones:
fuente
Aquí están las utilidades GNU como puertos nativos win32 . No necesitan cygwin para ejecutarse, y vienen con un shell (sh.exe), que incluye grep, sed, awk, find, less, cat, tac y mucho más.
El problema con la ruta de Windows persistirá, pero tal vez cambie el nombre de find a
gfind
(gnu-find) o tosearch
, para que sea más fácilmente accesible y agregue el directorio coreutils a su RUTA.fuente