平时有很多项目的目录,需要频繁的在这些目录中切换,效率很低。 之前总是在shell里ctrl + r 或者 cd -,后来目录多了这招也不好使了 我是个懒人,什么事重复三遍就不能忍 然后就用Python造了个命令go,可以方便智能的随意切换目录 先上代码,再继续说
#.bashrc中加入 go () { cd $(python /Users/auxten/scripts/thepath.py "$1") }
/Users/auxten/scripts/thepath.py内容如下
#!/usr/bin/env python
# -*- coding: utf8 -*-
import sys
import os
path_dic = {
"flow":"/Users/auxten/Codes/Android/VPN/flow",
"byod":"/Users/auxten/Codes/Android/byod/git/byod",
"vine":"/Users/auxten/Codes/baidu/ops-src/ops-vine",
"gko":"/Users/auxten/Codes/gko_pool",
"cdn":"/Users/auxten/Codes/baidu/ops-src/dlPlatform/log_analytics/web/web_env/",
"proxy":"/Users/auxten/Dropbox/插件/spiderProxy/",
"vpn":"/Users/auxten/Codes/Android/VPN/flow",
}
search_path = [
"/Users/auxten/Codes/Android/byod/trunk/",
"/Users/auxten/Codes/baidu/ops-src/",
"/Users/auxten/Codes/",
]
path = "~"
try:
path = path_dic[sys.argv[1]]
except KeyError,IndexError:
for dir in search_path:
tmp_path = os.path.join(dir, sys.argv[1])
if os.path.isdir(tmp_path):
path = tmp_path
break
print path
如果在path_dic里指定类似这种
"flow":"/Users/auxten/Codes/Android/VPN/flow",
go flow ##就相当于 cd /Users/auxten/Codes/Android/VPN/flow
如果在path_dic里没有指定就会在search_path中按顺序查找flow文件夹,找到后就cd进去