J'utilise cygwin dans ma machine Windows. J'essaie de faire une recherche et cela donne un format de paramètre incorrect. Pourquoi donc?
$ 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
- Dois-je installer quelque chose lors de l'installation de cygwin ou est-ce que je fais quelque chose de mal?
/usr/bin/find
au lieu defind
/usr/bin
dans le chemin, je suppose que le shell utilise le premierfind
trouvé dans le $ PATH, qui est le système. J'étais sur le point de le supprimer (car je n'en avais pas besoin de toute façon) , mais je suppose que certains scripts système aléatoires pourraient s'attendre à celafind
. Ainsi, la fixation de ce la bonne manière est d'écrire un aliasalias find="/usr/bin/find"
dans~/.bashrc
(ou shell que vous utilisez) .Find est-il installé? Que signifie "qui trouve"? N'oubliez pas que Windows possède une ligne de commande intégrée que Cygwin finirait par utiliser si sa propre recherche était mia.
la source
La réponse de Gilles est correcte dans la mesure où la version Windows de la
find
commande précède la version cygwin, et donc elle est appelée.Cependant, faire avancer Cygwin signifie que tous les fichiers batch qui utilisent la
find
commande windows appellent désormais lafind
commande cygwin , ce qui n'est peut-être pas ce que vous voulez.La façon la plus symbiotique pour les deux de travailler, à mon avis, est de faire ce qui suit:
find
commande cygwin et renommez / copiez-lalfind.exe
(ou tout autre nom qui n'est pas sur le chemin Windows)~/.bashrc
fichier ajoutez la lignealias find=lfind
De cette façon, lorsque vous exécutez à
find
partir du terminal cygwin, vous utiliserez la version cygwin, mais les fichiers batch utiliseront la version Windows.Remarque: Vous aurez toujours besoin du répertoire cygwin bin sur votre PATH, mais il peut maintenant être plus éloigné du répertoire système de Windows.
la source
Lorsque vous installez Cygwin, il n'installe pas tous les packages possibles, sauf si vous le lui demandez. Afin d'ajouter un package souhaité, jetez un oeil à l'explication ici sur Super User.
Ou effectuez simplement les actions suivantes:
la source
Voici les GNU-utils en tant que ports natifs win32 . Ils n'ont pas besoin de cygwin pour être exécutés et sont livrés avec un shell (sh.exe), y compris grep, sed, awk, find, less, cat, tac et bien plus encore.
Le problème avec le chemin Windows persistera, mais peut-être renommez-vous la recherche en
gfind
(gnu-find) ou ensearch
, pour la rendre plus facilement accessible, et ajoutez le répertoire coreutils à votre PATH.la source