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

来源:互联网 发布:java dos 运行命令 编辑:程序博客网 时间:2024/05/17 06:52

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

0 0
原创粉丝点击