[求救] 命令列下切換常用子目錄

作者: HuangJC (吹笛牧童)   2015-06-27 11:21:51
如題,命令列下切換常用子目錄
從前 dos 時代是有人出過這種小工具的,所以有這需求似乎不用交代
我的狀況是公司的專案,放置的子目錄深度很深
目前的做法: 打開繪圖介面的 finder,慢慢找到內部子目錄,然後按滑鼠右鍵開命令列
但我自己習慣的做法是用專案名打個批次檔
比如 iLife 專案:
touch iLife //建檔
open -a TextEdit iLife //文字編輯檔案
cd /project/iLife //只打一行,切換子目錄;存檔退出
chmod a+x iLife //改變為可執行屬性
iLife //執行,神奇的是不會切換子目錄
. iLife //用另一種方式執行,可以了!!
以上,想請教的是用 . 去執行就可以,怎麼會這樣?
另外這似乎是比較偏命令列的討論,如果跑錯板尚請告知,謝謝
作者: A4P8T6X9 (殘廢的名偵探)   2015-06-27 11:32:00
有宣告他是 bash shell?
作者: sonyu (:P)   2015-06-27 11:53:00
直接執行是再開一個 shell, 裡面做 cd, 不影響原本的. = source, 形同在目前 shell 裡 cd命令打在目前的 shell 跟開出來的 subshell 的差別目的是影響 shell 環境時 (cd, env, function, alias)在 subshell 執行,執行完就結束,原本的 shell 不受影響因此影響目前 shell => source最終目的是開非 shell 的程式(eg gvim) 還是會直接執行可以讓該程式需要的環境不會汙染原本 shell如果只是要切換目前 shell 的目錄,用 alias 應該就可以了
作者: andy13579372 (痘糖)   2015-06-27 13:18:00
空白前面加反斜線另外一種方式是用symbolic link做捷徑 "ln -S my/dir/i\ Lifeln -S my/dir/i\ Life噢噢抱歉我好像有些沒看清楚 我剛試了alias如果加雙引號應該可以alias ilife="cd i\ Life"
作者: peacedove (林帛亨加油!!!)   2015-06-27 21:43:00
這動作感覺alias比較符合你的需求
作者: Neisseria (Neisseria)   2015-06-28 11:48:00
source 或 alias 都可達成需求,看那種比較符合習慣

Links booklink

Contact Us: admin [ a t ] ucptt.com