la commande find ne semble pas fonctionner dans cygwin

10

Lorsque j'essaie d'exécuter des commandes find dans cygwin, je reçois toujours l'erreur

"FIND: format de paramètre incorrect"

Cependant, les mêmes commandes s'exécutent sur Linux. Que se passe-t-il?

dggoldst
la source

Réponses:

13

Vous utilisez la commande Windows find, pas celle de cygwin.

Ceci est précisé si vous tapez «qui trouve»

Pour y remédier, modifiez votre chemin (Propriétés système -> Avancé -> Variables d'environnement -> Variables système -> Chemin) et déplacez l'entrée pour cygwin au début du chemin. (Un moyen simple de le faire est de copier le chemin entier, de le coller dans le Bloc-notes, de le modifier et de le coller à nouveau).

Comme indiqué dans les commentaires, une autre voie consiste à modifier les scripts de démarrage de bash et à modifier le chemin d'accès. Je dirais même que c'est la solution préférée car j'ai maintenant trouvé un cas dans lequel les versions de cygwins ont d'abord causé un problème.

dggoldst
la source
5
ce n'est peut-être pas la solution idéale; une alternative consiste à modifier les fichiers de démarrage bash pour ajouter les chemins Cygwin au chemin système au lieu de les ajouter. la principale différence est de savoir si vous souhaitez ou non que les versions de Cygwin soient trouvées en premier lors de l'exécution des commandes dans les shells Windows CMD ou Explorer standard.
Quack Quichote
cygwin prépare ses propres chemins vers le global. donc son OP assez étrange obtient cette erreur.
akira
Bon charlatan de point!
dggoldst
2

Je n'ai pas pu exécuter la «recherche» correcte dans le shell de commande de Windows, et le réglage du PATH n'a pas aidé. Mais cela a fonctionné:

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

Le chemin explicite a déclenché la bonne «recherche» et, pour une raison quelconque, ne fonctionne que lors de l'exécution dans bash.

DarenW
la source
Cela a fonctionné le mieux pour moi. J'étais en train de créer un script qui pouvait s'exécuter sur différentes machines qui avaient déjà bash. Certains avaient le chemin bash avant \ Windows \ System32, mais certains l'avaient après. De plus, la commande windows "where find" vous montrera tous les "find" dans l'ordre des chemins.
PseudoNoise