команда find не работает в cygwin

10

При попытке запустить команды поиска в Cygwin, я получаю сообщение об ошибке

«НАЙТИ: неверный формат параметра»

Однако те же команды выполняются в Linux. В чем дело?

dggoldst
источник

Ответы:

13

Вы используете команду поиска Windows, а не Cygwin.

Это становится понятным, если вы введете «которые находят»

Чтобы исправить это, отредактируйте ваш путь (Свойства системы -> Дополнительно -> Переменные среды -> Системные переменные -> Путь) и переместите запись для cygwin в начало пути. (Простой способ сделать это - скопировать весь путь, вставить его в Блокнот, отредактировать его и вставить обратно).

Как указано в комментариях, еще один способ - отредактировать сценарии запуска bash и изменить там путь. Я бы даже сказал, что это предпочтительное решение, поскольку теперь я обнаружил случай, когда наличие версий cygwins сначала вызвало проблему.

dggoldst
источник
5
это не может быть идеальным решением; альтернатива - редактировать файлы запуска bash, добавляя пути Cygwin к системному пути, а не добавляя их. Основное различие заключается в том, хотите ли вы, чтобы версии Cygwin были найдены первыми при выполнении команд в стандартных оболочках Windows CMD или Explorer.
шарлатан-кихот
cygwin готовит свои собственные пути к глобальному. так что это довольно странный ОП, получить эту ошибку.
Акира
Хорошая точка кря!
dggoldst
2

Я не смог заставить корректную команду 'find' работать в командной оболочке Windows, и настройка PATH не помогла. Но это сработало:

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

Явный путь вызвал правильное 'find', и по любой причине работает только при запуске в bash.

DarenW
источник
Это сработало лучше для меня. Я писал сценарий, который мог запускаться на разных машинах, на которых уже был bash. У некоторых был путь bash до \ Windows \ System32, а у некоторых - после. Кроме того, команда Windows «где найти» покажет вам все «найти» в порядке пути.
PseudoNoise