Команда find, схоже, не працює в cygwin


10

Коли я намагаюся запустити команди пошуку в cygwin, я постійно отримую помилку

"ЗНАЙДЕНО: формат параметра не правильний"

Однак ті самі команди працюють на Linux. Що відбувається?

Відповіді:


13

Ви використовуєте команду Windows для пошуку, а не cygwin.

Це стає зрозумілим, якщо ви введете "котрий знаходить"

Щоб виправити це, відредагуйте свій шлях (Властивості системи -> Додатково -> Змінні середовища -> Змінні системи -> Шлях) і перемістіть запис для cygwin на передню частину шляху. (Простий спосіб зробити це - скопіювати весь шлях, вставити його в Блокнот, відредагувати його та вставити назад).

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


5
це може бути не ідеальним виправленням; Альтернативою є редагування файлів запуску bash, щоб додати шляхи Cygwin до системного шляху, а не додавати їх. головна відмінність полягає в тому, чи потрібно ви, щоб перші версії Cygwin були знайдені першими при виконанні команд у стандартних оболонках Windows CMD або оболонках Explorer.
шарлатаний кіхот

cygwin готує власні шляхи до глобального. так що його досить дивний ОП отримати цю помилку.
акіра

Гарна крапка!
dggoldst

2

Я не міг отримати правильний «знайти» для запуску, коли в командній оболонці Windows, і налаштування PATH не допомогло. Але це спрацювало:

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

Явний шлях запустив правильний "find", і з будь-якої причини працює лише під час запуску в bash.


Це працювало найкраще для мене. Я писав сценарій, який міг працювати на різних машинах, у яких вже був баш. Деякі мали шлях bash до \ Windows \ System32, а деякі - після. Крім того, команда Windows "де знайти" покаже вам усі "знаходження" в порядку шляху.
PseudoNoise
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.