Как мне создать ярлык, который открывает оболочку Cygwin bash в каталоге по моему выбору (особенно UNC)?


8

Учитывая стандартную установку Cygwin для Windows XP, я хотел бы создать стандартный ярлык Explorer, который открывает оболочку bash, уже открытую в каталоге по моему выбору. Каталог является UNC-путем. Стандартный cygwin.bat не работает, потому что он вызывает cmd.exe, а cmd.exe не любит пути UNC. В идеале, он не запускает cmd.exe или любую другую оболочку для открытия bash. Я пытался манипулировать .bashrc и извлекать память из моих дней Unix, но, к сожалению, этого не хватает в наши дни. Различные решения, которые я пробовал, почти работают, но не совсем.


Ответы:


11

Я не играл с путями UNC, но в целом вы должны использовать косые черты вместо обратных, как я полагаю. Для обычных дисков вы можете использовать, /cygdrive/cнапример, доступ к диску C.

В командном файле, чтобы открыть оболочку в корне C:вы можете использовать:

c:\cygwin\bin\bash.exe --login -i -c 'cd "/cygdrive/c";bash'

Вас также может заинтересовать chere пункт контекстного меню для Open bash здесь :

альтернативный текст


Другая причина использования chereзаключается в том, что он позволяет вам выбрать, какой терминал вы хотите открыть, а терминал Cygwin по умолчанию - немного неуклюжий IMO. У меня есть, чтобы вместо этого открыть терминал rxvt.
Nifle

Спасибо за Ваш ответ. Я вижу, где одна из моих попыток потерпела неудачу: нет; bash после CD! Спасибо также за вход в контекстное меню ...
Kit

Отличный инструмент, когда вы хотите написать какой-нибудь скрипт для кого-то, но он не хочет открывать приглашение оболочки и cd в рабочий каталог.
Исчисление Рыцарь

1

Я добавил подпапку в реестр в HKEY_CLASSES_ROOT/Directory/shell, добавил ключ Cygwinс ключом, commandгде значение команды

cmd.exe /k "E:\PATHTOCYGWIN\bin\bash --login -i -c "cd ""%L"";bash""
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.