Jutilise cygwin dans ma machine Windows. Jessaie de faire une recherche et le format des paramètres nest pas correct. Pourquoi?
$ 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 linstallation de cygwin ou est-ce que je fais quelque chose de mal?
Réponse
Votre PATH
est incorrect. Il a des répertoires système Windows avant les répertoires Cygwin, ou peut-être na-t-il pas du tout de répertoires Cygwin. Ce message provient de la commande Windows find
(quil signale son nom comme FIND
en majuscules est un indice).
Lorsque vous démarrez un shell Cygwin, vous devez généralement définir PATH
. Je recommande que vous démarrez un shell de connexion (si je me souviens bien, cest ce que font les entrées par défaut du menu système Cygwin). Votre Cygwin PATH
doit avoir /usr/local/bin
, /usr/bin
et /bin
(au moins) avant tout répertoire non-Cygwin.
Commentaires
Answer
Find est-il installé? Que renvoie «quelle trouvaille»? Noubliez pas que Windows a une ligne de commande intégrée find que Cygwin finirait par utiliser si sa propre recherche était mia.
Réponse
La réponse de Gilles est correcte dans la mesure où la version Windows de la commande find
précède la version cygwin, et donc cela est appelé.
Faire passer Cygwin en avant cependant, tous les fichiers batch utilisant la commande windows find
appelleront désormais la commande cygwin find
, ce qui nest peut-être pas ce que vous
Le moyen le plus symbiotique pour les deux de fonctionner, à mon avis, est de faire ce qui suit:
- Localisez le cygwin
find
et renommez-le / copiez-le danslfind.exe
(ou tout autre nom qui nest pas sur le PATH de Windows) - Dans votre
~/.bashrc
fichier ajouter la lignealias find=lfind
De cette façon, lorsque vous exécutez find
depuis le terminal cygwin vous utiliserez t 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 Windows.
Réponse
Lorsque vous « réinstallez Cygwin, il ninstalle pas tous les paquets possibles sauf si vous le lui demandez. Pour ajouter un package souhaité, jetez un œil à lexplication ici sur Super User.
Ou effectuez simplement les actions suivantes:
- Démarrez la configuration, sélectionnez un miroir et accédez à lécran des packages
- Sélectionnez « Conserver » dans la liste des boutons radio en haut
- Sélectionnez le package souhaité dans le groupe approprié
- Sélectionnez « Continuer »
Réponse
Voici les GNU-utils en tant que ports win32 natifs . Ils nont pas besoin de cygwin pour être exécuté et sont livrés avec un shell (sh.exe), comprenant grep, sed, awk, find, less, cat, tac et bien plus encore.
le chemin Windows persistera, mais peut-être que vous renommez la recherche en gfind
(gnu-find) ou en search
, pour le rendre plus facile accessible, et ajoutez le répertoire coreutils à votre PATH.
/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 celui du système. Jétais sur le point de le supprimer (parce que je navais ' pas besoin de toute façon) , mais je suppose que certains scripts système aléatoires pourraient mattendre à celafind
. Donc, résoudre ce problème de la bonne façon consiste à écrire un aliasalias find="/usr/bin/find"
dans~/.bashrc
(ou quel que soit le shell que vous ' re using) .