Wie erstelle ich eine Verknüpfung, die die Cygwin-Bash-Shell in einem Verzeichnis meiner Wahl öffnet (insbesondere UNC)?

8

Angesichts einer Standardinstallation von Cygwin für Windows XP möchte ich eine Standard-Explorer-Verknüpfung erstellen, die eine Bash-Shell öffnet, die bereits in einem Verzeichnis meiner Wahl geöffnet ist. Das Verzeichnis ist ein UNC-Pfad. Die Standarddatei cygwin.bat funktioniert nicht, da sie cmd.exe aufruft und cmd.exe UNC-Pfade nicht mag. Im Idealfall wird cmd.exe oder eine andere Shell nicht gestartet, um bash zu öffnen. Ich habe versucht, .bashrc zu manipulieren und mein Gedächtnis aus meinen Unix-Tagen auszubaggern, aber leider fehlt das heutzutage. Verschiedene Lösungen, die ich ausprobiert habe, funktionieren fast , aber nicht ganz.

Kit
quelle

Antworten:

11

Ich habe nicht mit UNC-Pfaden gespielt, aber im Allgemeinen müssen Sie Schrägstriche anstelle von Schrägstrichen verwenden, glaube ich. Bei normalen Laufwerken können Sie /cygdrive/cbeispielsweise auf das Laufwerk C zugreifen.

In einer Batchdatei können Sie zum Öffnen der Shell im Stammverzeichnis C:Folgendes verwenden:

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

Möglicherweise interessiert Sie auch chere ein Kontextmenüeintrag für Open Bash hier :

Alt-Text

John T.
quelle
Ein weiterer Grund für die Verwendung chereist, dass Sie auswählen können, welches Terminal Sie öffnen möchten. Das Standard-Cygwin-Terminal ist eine etwas klobige IMO. Ich muss stattdessen ein RXVT-Terminal öffnen.
Nifle
Danke für deine Antwort. Ich sehe, wo einer meiner Versuche schief gelaufen ist: Nein, nach der CD schlagen! Danke auch für den Kontextmenüeintrag ...
Kit
Ein großartiges Tool, wenn Sie ein Skript für jemanden schreiben möchten, der jedoch keine Shell-Eingabeaufforderung und keine CD in das Arbeitsverzeichnis öffnen möchte.
Calculus Knight
1

Ich habe einen Unterordner in der Registrierung unter HKEY_CLASSES_ROOT/Directory/shellhinzugefügt und einen Schlüssel Cygwinmit dem Schlüssel hinzugefügt, commandin dem sich der Wert des Befehls befindet

cmd.exe /k "E:\PATHTOCYGWIN\bin\bash --login -i -c "cd ""%L"";bash""
Bondax
quelle