[求救] 命令列下切换常用子目录

楼主: 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