使用场景: 如果你有很多工作目录,需要每天在这些目录中跳来跳去。那么你就应该试试goShell. 一个使用简单、功能恰到好处的terminal下的小工具。 gtShell支持将常用的一些目录保存为bookmark,提供快速跳转功能。这样你就不需要在使用cd后面跟随一长串的目录名称。 它也支持自动完成,你只需要输入开头的几个字母,然后按tab键就可以自动匹配。 目前源码被我host在上。
下面是主要文件gt.sh的源码。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | #! /bin/bashDIRS="$HOME/.gtDirs"if test ! -e $DIRSthen touch $DIRSfigt () { case $1 in -d) temp=`mktemp -t .gtDirs-XXXXXX` sed "/^$2=/"d $DIRS > $temp mv $temp $DIRS rm -f $temp ;; -a) validate_bookmark_name "$@" if [ -z "$result" ]; then CURDIR=$PWD echo "$2=$CURDIR" >> $DIRS fi ;; -l) cat $DIRS ;; -h) print_usage ;; *) if [ -z $1 ]; then print_usage elif [[ ! -z `awk -F '=' '/^'"$1"'=/ {print $2 }' $DIRS` ]]; then cd `awk -F '=' '/^'"$1"'=/ {print $2 }' $DIRS` else echo 'error: bookmark name not found' fi esac}#validate namesfunction validate_bookmark_name { result="" if [ -z $2 ]; then result='error: bookmark name required!' echo $result elif [ -z `echo $2 | sed 's/[^A-Za-z0-9_]//g' ` ]; then result='error: bookmark name is invalid!' echo $result fi}function print_usage { echo 'Usage:' echo '-a |
安装:
git clone git@github.com:huangbowen521/gtShell.git
或者直接拷贝 gt.sh文件内容。add gt.sh file path to your
~/.bash_profile
or~/.bashrc
filereload your profile or restart your terminal
用例:
gt -a <bookmark_name>
- 保存当前目录的标签为 给定的bookmark_namegt -d <bookmark_name>
- 删除给定的标签gt -l
- 列除所有标签gt -h
- 帮助信息gt <bookmark_name>
- 跳转到指定的标签目录
例子:
123456789 | current_user:~$ cd sourcecode/study/current_user:~/sourcecode/study$ gt -a studycurrent_user:~/sourcecode/study$ cd ~current_user:~$ gt studycurrent_user:~/sourcecode/study$ gt -lgoAgent=/Users/twer/sourcecode/goagent/goagent-goagent-9c1edd3/localoctopress=/Users/twer/sourcecode/octopressgoShell=/Users/twer/sourcecode/shell/goShellstudy=/Users/twer/sourcecode/study |
12345 | current_user:~/sourcecode/study$ gt -d studycurrent_user:~/sourcecode/study$ gt -lgoAgent=/Users/twer/sourcecode/goagent/goagent-goagent-9c1edd3/localoctopress=/Users/twer/sourcecode/octopressgoShell=/Users/twer/sourcecode/shell/goShell |
1234567 | current_user:~/sourcecode/study$ gt -hUsage:-a |
123 | current_user:~/sourcecode/study$ gt go |