ubuntu9.10下命令"cd .."的简化使用

总所周知,命令"cd .."是用来在终端里转向上一级(简称:父目录)的。在前面的学习中,我用一个简单的可执行shell脚本文件来简化清屏功能(clear)和XP(主操作系统)与ubuntu(VirtualBox)文件夹共享的功能,我是通过将上述的两个可执行shell脚本文件的文件名缩小到一个字符(分别为c和s)达到简化命令的功能。因此我就想能不能把命令"cd .."也简化成f(father)字符代替。

    在实现简化"cd .."功能的过程中,遇到了困难,在此我只将实现了的思路和步骤写出来。
    1. 首先要建立一个shell脚本文件,命名为f,且将文件属性改为可执行。
    f文件内代码如下(一行):
#!/bin/bash
    2. 若想反回父目录,必须先要获取终端当前所在的目录,用pwd实现。
f文件代码如下(两行):
#!/bin/bash
a=`pwd` #这里是反引号
    3. 得到了终端当前所在目录后,应该在此基础上提取出父目录,应该把“最末端”的目录去掉,也就是需     要截取一个子字符串。例如终端当前目录为:/home/user/father_dir/son_dir,我们需要提取得/home/user
    /father_dir在实现这一步骤上我想了集中方法,最后利用正则表达式实现了截取子字符串的功能。
       f文件内代码如下(三行):
        #!/bin/bash
        a=`pwd` #这里是反引号
              b=${a%/*}
       4. 在步骤3中得到父目录后,接下来就应该用cd命令来转到父目录了。
    f文件代码如下(四行):
              #!/bin/bash
        a=`pwd` #这里是反引号
              b=${a%/*}
cd $b
    完成上述4个步骤后,在终端里输入命令f,并不能达到转到父目录的效果。经过一个多小时的艰苦卓绝的摸索,找到可以用alias解决这个问题(这个问题具体由什么导致的,为什么alias可以解决这个问题,我也没弄清楚),下面的步骤5就是用来解决这个问题的。
    5. 在文件~/.bashrc的底部添加这样一条命令:alias F='source dir/f',其中dir为文件f的绝对路径、F为在终端里代替cd ..的命令,由于打F,需要同时按下shift和f键,有点麻烦,我们在这里将alias F='source dir/f'改为alias f='source dir/F',这样只要在终端里敲一个f键就可以实现cd ..功能了(同时需要把步骤1~4中的f文件名改为F)
    至此,就实现了简化cd ..的功能了。
    虽然简化cd ..的功能实现了,但是上述方法在实际使用中也会出现一个小小的不足,即在用户目录的父目录(/home)下执行f命令后,又转回到用户目录/home/user,这与用cd ..命令在此情况下执行得到的结果不同。
posted @ 2013-11-17 22:10  楠木Rock  阅读(446)  评论(0)    收藏  举报