每次cd ../../../../感觉好累,网上搜了一下,自己动手写了一个功能。
首先,写一个脚本文件放在~/bin目录下(当然这个路径是可以自定义的),命名为cdbackto(当然文件名也可以自定义),内容如下:
#!/bin/bash
################################################################################
#@Authro ficksong@gmail.com
#@Date 2017-02-23
#cd back forward to desc,for example:cdb 2,for cd ../../
################################################################################
# 检查输入参数是否为空
function checkNull(){
FNUM=$1
if [ -z $FNUM'' ]
then
echo 'arg can not be null.'
echo 'usage:cdb 3 cd ../../../'
exit 1
fi
}
# 检查输入参数是否为整数
function checkInt(){
FNUM=$1
tmp=`echo $FNUM | sed 's/[0-9]//g'`
if [ -n ${tmp}'' ]
then
echo 'args:'$FNUM' not a number.'
echo 'usage:cdb 3 cd ../../../'
exit 1
fi
if [ $FNUM -le 0 ]
then
echo 'FNUM must greater than 0'
echo 'usage:cdb 3 cd ../../../'
exit 1
fi
}
function cdb(){
FNUM=$1
checkNull $FNUM
checkInt $FNUM
TOPATH=''
for i in `seq 1 $FNUM`
do
TOPATH=$TOPATH'../'
done
cd $TOPATH
}
文件保存后,再在.bash_profile文件(我的是mac,其他linux系统文件名可能不一样)里加载这个文件,在文件末添加以下内容(文件路径及文件名请根据自己实现时的真实情况进行修改):
if [ -r '/Users/songfei/bin/cdbackto' ]
then
. /Users/songfei/bin/cdbackto
fi
然后执行source ~/.bash_profile 或者重新登录,就生效了。
可以执行以下命令实现向前3个目录
cdb 3 相当于执行cd ../../../
➜ workspace_work pwd
/Users/songfei/Documents/workspace_work
➜ workspace_work cdb 3
➜ /Users
看到了吧。