通过一个命令返回上级多层目录的方法

http://blog.csdn.net/linwhwylb/article/details/6129292
在CSDN论坛上看到这个问题,如下:

初用linux,经常要访问很深的目录,而且要频繁在几个目录间切换,比如有目录:
/Myproject/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9
我可能不停在这些目录间切换。 进入子目录我可以用tab键。最苦恼的是返回上层目录,需要很长的”..”
例如从dir9到dir3,就要输入: cd ../../../../../../..

我想通过一个bash脚本来实现这个功能,比如取名 goback。后面再来个整数参数:
从dir9到dir3就可以用 goback 6 来实现
从dir7到dir4就可以用 goback 3 来实现
功能仅次而已。。。。

尝试实现了一下,基本上达到所要的要求。关键点就是使用source或者.使shell脚本当中的cd命令可以在当前的shell中有效。

假设我要执行的脚本在~/bin下面(我比较喜欢放在这个目录当中)。
cd /bin vim goback.sh
内容如下:

!/bin/bash

if [ $# != 1 ]
then
echo “a go back dir number required.”
exit 1
fi
newdir=echo "../" | awk -v num=$1 '{for(i=1;i<=num;i++) printf($0)}'
cd newdir vim ~/.bashrc
加入如下的东西。
alias goback=”source ~/bin/goback.sh”
然后:
source /.bashrc cd /tmp
mkdirptest1/test2/test3/test4/test5/test6/test7/test8/test9/ cd test1/test2/test3/test4/test5/test6/test7/test8/test9/
pwd/tmp/test1/test2/test3/test4/test5/test6/test7/test8/test9 goback 6
pwd/tmp/test1/test2/test3 cd /tmp/test1/test2/test3/test4/test5/test6/test7/
pwd/tmp/test1/test2/test3/test4/test5/test6/test7 goback 3
$ pwd
/tmp/test1/test2/test3/test4

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值