命令列下切換常用子目錄 - MAC

Table of Contents


如題,命令列下切換常用子目錄

從前 dos 時代是有人出過這種小工具的,所以有這需求似乎不用交代
我的狀況是公司的專案,放置的子目錄深度很深

目前的做法: 打開繪圖介面的 finder,慢慢找到內部子目錄,然後按滑鼠右鍵開命令列

但我自己習慣的做法是用專案名打個批次檔
比如 iLife 專案:


touch iLife //建檔
open -a TextEdit iLife //文字編輯檔案

cd /project/iLife //只打一行,切換子目錄;存檔退出

chmod a+x iLife //改變為可執行屬性

iLife //執行,神奇的是不會切換子目錄

. iLife //用另一種方式執行,可以了!!


以上,想請教的是用 . 去執行就可以,怎麼會這樣?
另外這似乎是比較偏命令列的討論,如果跑錯板尚請告知,謝謝




--

All Comments

Ula avatarUla2015-06-30
有宣告他是 bash shell?
Audriana avatarAudriana2015-07-02
直接執行是再開一個 shell, 裡面做 cd, 不影響原本的
Carol avatarCarol2015-07-03
. = source, 形同在目前 shell 裡 cd
Bethany avatarBethany2015-07-08
命令打在目前的 shell 跟開出來的 subshell 的差別
目的是影響 shell 環境時 (cd, env, function, alias)
在 subshell 執行,執行完就結束,原本的 shell 不受影響
Mason avatarMason2015-07-10
因此影響目前 shell => source
Annie avatarAnnie2015-07-12
最終目的是開非 shell 的程式(eg gvim) 還是會直接執行
Jack avatarJack2015-07-15
可以讓該程式需要的環境不會汙染原本 shell
如果只是要切換目前 shell 的目錄,用 alias 應該就可以了
Ophelia avatarOphelia2015-07-19
空白前面加反斜線
另外一種方式是用symbolic link做捷徑 "ln -S my/d
ir/i\ Life
Franklin avatarFranklin2015-07-21
ln -S my/dir/i\ Life
Mia avatarMia2015-07-24
噢噢抱歉我好像有些沒看清楚 我剛試了alias如果加
雙引號應該可以
alias ilife="cd i\ Life"
Frederica avatarFrederica2015-07-24
這動作感覺alias比較符合你的需求
Wallis avatarWallis2015-07-25
source 或 alias 都可達成需求,看那種比較符合習慣