Jak utworzyć skrót, który otwiera powłokę bash Cygwin w wybranym przeze mnie katalogu (szczególnie UNC)?

8

Biorąc pod uwagę standardową instalację Cygwin dla Windows XP, chciałbym utworzyć standardowy skrót Eksploratora, który otwiera powłokę bash już otwartą w wybranym przeze mnie katalogu. Katalog jest ścieżką UNC. Standardowy plik cygwin.bat nie działa, ponieważ wywołuje cmd.exe, a cmd.exe nie lubi ścieżek UNC. Idealnie, nie uruchamia cmd.exe ani żadnej innej powłoki, aby otworzyć bash. Próbowałem manipulować .bashrc i pogłębiać pamięć z moich dni uniksowych, ale niestety tych dni brakuje. Różne rozwiązania, które wypróbowałem, prawie działają, ale nie całkiem.

Zestaw
źródło

Odpowiedzi:

11

Nie bawiłem się ścieżkami UNC, ale generalnie musisz używać ukośników zamiast odwrotnych ukośników. W przypadku zwykłych dysków można /cygdrive/cna przykład użyć do uzyskania dostępu do dysku C.

W pliku wsadowym, aby otworzyć powłokę do katalogu głównego, C:możesz użyć:

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

Możesz być także zainteresowany chere pozycją menu kontekstowego dla Open bash tutaj :

alternatywny tekst

John T.
źródło
Innym powodem użycia cherejest to, że pozwala wybrać terminal, który chcesz otworzyć, domyślny terminal cygwin jest nieco niezręczny IMO. Zamiast tego mam go otworzyć terminal rxvt.
Nifle
Dzięki za odpowiedź. Widzę, gdzie jedna z moich prób się nie powiodła: nie; bash po cd! Dziękujemy również za wpis menu kontekstowego ...
Kit
Świetne narzędzie, gdy chcesz napisać skrypt dla kogoś, ale nie chce on otwierać monitu powłoki i cd do katalogu roboczego.
Calculus Knight
1

W rejestrze dodałem podfolder HKEY_CLASSES_ROOT/Directory/shell, dodałem klucz Cygwinz kluczem, w commandktórym znajduje się wartość polecenia

cmd.exe /k "E:\PATHTOCYGWIN\bin\bash --login -i -c "cd ""%L"";bash""
Bondax
źródło