2016-12-07 146 views
0

我使用Cygwin並希望使用diff參數運行它,以便在Windows中啓動後立即更改目錄。如何在bash中更改目錄bash --login -i

例如

bash --login -i ; cd/

bash --login -i ; cd /tmp 

cd不工作,我怎麼能傳遞一個改變目錄

bash --login -i 

FYI我不能把cd in .bash,它必須通過

試圖與沒有運氣

bash --login -i -s cd /tmp; 

回答

2

一個黑客就是用-c改變目錄,然後立即到位的第一個啓動一個新的外殼。工作目錄是繼承的。請注意,任何外殼(支持exec)都可用於啓動新過程;一旦工作目錄被更改,您就可以啓動bash的交互式登錄實例。

bash -c "cd /tmp; exec bash --login -i" 
+2

定義「沒有工作」。 – chepner

+1

這適用於我在Windows 7 SP1上使用32位Cygwin並應用了所有更新。 @ born2net,是否有可能在'.bashrc'或'.bash_profile'文件中有'cd'命令? –

+0

好的,我得到了我需要的東西,但是+1了你tx – born2net

0

行,所以我找到了一個解決方案,我需要的東西。 Cygwin中的.bashrc我把

"$OLDPWD" ,它會自動切換到我的最後一個目錄我是在Windows叉子Cygin之前,

希望幫助別人,

肖恩

1

我用.bashrc.bash_logout恢復以前的位置。在.bash_logout我存儲當前目錄中的文件:

if [ -d ~/.recent-locations ]; then 
    pwd > ~/.recent-locations/locus-$RANDOM 
fi 

.bashrc我消耗的存儲位置:

if [ -d .recent-locations ]; then 
    for x in $(ls .recent-locations); do 
     dstdir=$(cat .recent-locations/$x) 
     rm .recent-locations/$x 
     cd $dstdir 
     break 
    done 
fi 

對於這個工作,你需要註銷明確使用Ctrl-Dlogout;另一方面,如果你不想記錄你的位置,你只需通過窗口管理器關閉終端窗口。