Я установил эмулятор оболочки cmder для Windows.
Работает нормально, но я не могу использовать команду поиска Unix. Видимо, когда я печатаю:
'find .'
в терминале он пытается использовать ПОИСК Windows и выводит эту ошибку:
FIND: Parameter format not correct
Я действительно хотел бы использовать find, есть ли подсказка, как заставить это работать?
windows
command-line
unix
find
terminal-emulator
гейзенбаг
источник
источник
find
появлялся раньшеC:\Windows\System32
(где Windows 'находит жизни) вPATH
переменной среды. Обычно это считается не очень хорошей идеей, так как это может сбить с толку другие программы, которые ожидают стандартную среду Windows. Скорее, вы должны увидеть, можете ли вы установить скрипт запуска в Cmder и заставить скрипт делать что-то вродеset PATH=C:\path\to\folder\with\unix\find;%PATH%
cmder
, но в Linux / Unixwhich -a find
будут показаны все программы, которые могут выполняться с помощью команды find. Определите Unixfind
. Затем используйте его полный путь, измените порядокPATH
каталогов или установите псевдоним, еслиcmder
это поддерживается; Вы также можете переименовать Windowsfind.exe
вwfind.exe
. Если он эмулируетbash
, то вы можете использовать встроенныйtype -a find
.sfc /scannow
может отменить его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-подобную версию.Ответы:
Самое простое решение - создать псевдоним
find
исполняемого файла вcmder
папке установки:Могу ли я предложить вам также попробовать Cygwin, где, среди прочего,
find
работает из коробки. Это то, что я использовал, чтобы выяснить местонахождениеcmder
поставляемогоfind.exe
.Престижность @Bob и @AFH за их проницательные комментарии, а также @ Lưu Vĩnh Phúc за предложение другого простого решения:
На самом деле это может быть предпочтительнее создания псевдонима, поскольку
cmder
псевдонимы не работают в Windows 10, еслиUse legacy console
вcmd
свойствах не выбрано (см., Как это сделать).источник
cmder
в том, что он переносимый и не требует установки привилегированным пользователем.find
в другое имя, напримерfnd.exe
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%"
источник
Я установил SmartGit в Windows
Затем я добавляю C: \ Program Files (x86) \ SmartGit \ git \ bin (моя папка smartgit) в среду пути
нажмите win + r введите bash. в оболочке bash вы можете использовать команду find. в Cmder вы также можете ввести bash, чтобы использовать его
источник