Команда unix знайти на cmder.exe у Windows


10

Я встановив емулятор оболонки cmder для Windows.

Добре працює, але я не можу використовувати команду пошуку Unix. Мабуть, коли я набираю:

'find .'

в терміналі він намагається використовувати ЗНАЙТЕННЯ Windows і виводить цю помилку:

FIND: Parameter format not correct

Мені дуже хотілося б знайти підказку, будь-яку підказку, як змусити її працювати?


1
Вам потрібно зробити так, щоб той каталог, який findперебуває, відображався раніше C:\Windows\System32(де Windows знайде життя) у PATHзмінній оточення. Це, як правило, не є чудовою ідеєю робити в усьому світі, оскільки це заплутує інші програми, які очікують на стандартне середовище Windows. Швидше ви повинні побачити, чи можете ви встановити сценарій запуску в Cmder, і змусити сценарій робити щось на кшталтset PATH=C:\path\to\folder\with\unix\find;%PATH%
Боб

Я не знаю cmder, але в Linux / Unix which -a findбудуть показані всі програми, які можна виконати за допомогою команди find. Визначте Unix find. Потім використовуйте повний шлях, або переупорядкуйте порядок PATHкаталогів або встановіть псевдонім, якщо cmderце підтримується; ви також можете перейменувати Windows find.exeв wfind.exe. Якщо він емулює bash, то ви можете використовувати вбудований type -a find.
AFH



@AFH which -a findповертається /c/WINDOWS/system32/find /usr/bin/find. На жаль, хоч і /usr/bin/findврожайність The system cannot find the path specified.. Здається, тут потрібен власне шлях до стилю Windows. Запуск typeзапускає вікна type, і, здається cmder, не надає Unix-подібної версії.
simlev

Відповіді:


12

Найпростіше рішення - створити псевдонім findвиконуваного файлу в cmderпапці установки:

λ which find
/c/WINDOWS/system32/find
λ find --help
FIND: FIND: Parameter format not correct
λ alias find=C:\Files\Programs\cmder\vendor\git-for-windows\usr\bin\find.exe $*
λ find --help
Usage: /usr/bin/find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

Я можу запропонувати вам також спробувати Cygwin, де, крім усього іншого, findпрацює поза коробкою. Це те , що я використовував , щоб встановити місцезнаходження з cmder-supplied find.exe.

Престижність @Bob і @AFH за їх змістовні коментарі, і до @ LUU Віньфук для підкинувши мертве-просте рішення:

перейменуйте * nix findна інше ім’я, якfnd.exe

Насправді це може бути кращим, ніж створення псевдоніма, оскільки cmderпсевдоніми не працюють у Windows 10, якщо Use legacy consoleне вибрано cmdвластивості (див. Як це зробити).


Дякую за пропозицію. Здається, найкращий шлях. Я звичайно використовую cygwin під час роботи з windows, але з робочих міркувань я змушений прямо зараз перестаратися. Я спробую це якнайшвидше!
Heisenbug

@Heisenbug cmderмає очевидну перевагу в тому, що він є портативним і не потребує встановлення, щоб виконувати його привілейований користувач.
simlev

ви також можете просто перейменувати * nix findна інше ім’я, наприкладfnd.exe
phuclv

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

Чи не можна gnu знайти звичайно gfind у системах, які не є gnu?

4

Cmder\vendor\git-for-windows\usr\binдодається до PATH Cmder\vendor\init.bat. На жаль, він додається в кінці PATH, тому Windows find.exe знайдеться першим.

На щастя, це легко виправити. Просто додайте цей рядок всередину Cmder\config\user-profile.cmd:

set "PATH=%GIT_INSTALL_ROOT%\usr\bin;%PATH%"


0

Я встановив smartgit у windows

Потім я додаю C: \ Program Files (x86) \ SmartGit \ git \ bin (моя папка smartgit) у середовище шляху

натисніть win + r введіть баш. в оболонці bash можна використовувати команду find. у Cmder ви також можете ввести bash, щоб використовувати його

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.