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

  • Ouais, que ' est probablement ça. Cette erreur est due au fait que la recherche que vous avez utilisée est la commande find de Windows ', et non celle de cygwin '.
  • Ou tapez /usr/bin/find au lieu de find
  • I ' jai eu /usr/bin dans le chemin, je suppose que le shell utilise le premier find 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 à cela find. Donc, résoudre ce problème de la bonne façon consiste à écrire un alias alias find="/usr/bin/find" dans ~/.bashrc (ou quel que soit le shell que vous ' re using) .

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:

  1. Localisez le cygwin find et renommez-le / copiez-le dans lfind.exe (ou tout autre nom qui nest pas sur le PATH de Windows)
  2. Dans votre ~/.bashrc fichier ajouter la ligne alias 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:

  1. Démarrez la configuration, sélectionnez un miroir et accédez à lécran des packages
  2. Sélectionnez « Conserver » dans la liste des boutons radio en haut
  3. Sélectionnez le package souhaité dans le groupe approprié
  4. 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *