我也有類似的需求(通過上下文菜單在資源管理器當前查看的文件夾中打開一個新的Cygwin-Tab鍵),並發現了以下解決方案:
正如鮃指出在Cygwin-擊通常由開C:\ cygwin64 \ Cygwin.bat其中包括登錄過程。我的方法是通過登錄來更改工作目錄。
的.bash_profile:
if [ -f "${HOME}/startup.sh" ] ; then
source "${HOME}/startup.sh"
fi
啓動。SH
cdc "D:\Downloads\Programming\Selenium\"
#cdc is a custom function, see .bashrc
的.bashrc
cdc()
{
# converts a double-quoted windows-path and changes directory to it
p=$(cygpath -u "$1")
cd "$p"
}
你來砸你已經在startup.sh設置一個登錄進度從而改變路徑。您當然可以在startup.sh中鍵入一個Cygwin兼容的路徑,而無需使用.bashrc的自定義函數。它仍然非常有用,特別是如果你想要使用動態的startup.sh。
更加動態的方法:
在C上創建一個Cygwin.bat:\選擇\ ConEmu \ ConEmu具有以下內容:
Cygwin.bat
@echo off
C:
echo cdc %1 > C:\opt\cygwin64\home\%USERNAME%\startup.sh
:: Your ConEmu-Task-definition here
C:\opt\ConEmu\ConEmu64.exe /Single /cmd {Cygwin}
這一個寫入一個cdc命令,後跟您提供給您的startup.sh的路徑,並啓動一個新的ConEmu任務Cygwin的實例。任務本身並不做任何事情,但在我的配置開始Cygwin的實例:
ConEmu任務{}的Cygwin
"C:\opt\cygwin64\Cygwin.bat"
我通過上下文祈求的的Cygwin.bat探險家的菜單。另一種方法是將Windows快捷方式指向Cygwin.bat並添加路徑。
我不認爲它是bash的bug。如果使用參數「-l」或「--login」執行bash,它將作爲**登錄shell **執行。這意味着它處理「配置文件」文件並將工作目錄更改爲「/ etc/passwd」中定義的用戶主目錄。 如果您執行的bash沒有參數「-l」或「--login」,它在正常模式下執行,不會處理「配置文件」文件並保留當前工作目錄。 這與在Linux中的工作原理完全相同。 –
已添加適當的解決方案和說明 – Maximus