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.


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


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""
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.