cd是我们在使用Linux的时候最常用到的命令,下面一些关于cd的小技巧可以让我们的工作更加有效率。
一、设置CDPATH变量定义cd命令的基准目录(base directory)
如果你需要经常访问某个目录下的子目录或文件,那么你就可以把这个目录的绝对路径添加到CDPATH这个变量里面去。
$ cd mail
-bash: cd: mail: No such file or directory
$ export CDPATH=/etc
$ cd mail
/etc/mail
$ pwd
/etc/mail
为了使其永久生效,我们需要将export CDPATH=/etc 添加到 ~/.bashrc 中。和PATH变量一样,CDPATH也可以包含多个目录,不同的目录使用:将其隔开。
如:export CDPATH=/etc:~:/var。这样你就可以很方便的进入到相应目录去了。
二、使用alias为cd起别名
1、如果你有一个工作目录的结构很长很长,而且还必须打很多字,那么进入这个目录就会很麻烦的。我们可以使用alias来给进入这个复杂目录的操作起一个别名:
$ pwd
/home/very/long/directory/structure/that/is/too/deep
$ cd
$ pwd
$ /home/sunshine
$ echo "alias deep='cd /home/very/long/directory/structure/that/is/too/deep' " >> ~/.bashrc
$ . ~/.bashrc<span style="white-space:pre"> </span># 让.bashrc的更改在当前的shell中生效
$ deep
$ pwd
/home/very/long/directory/structure/that/is/too/deep
上面使用alias给进入这个复杂的目录起了个别名deep,以后再终端输入deep就可以进入这个目录了,是不是很方便呢!
2、好了,我们刚才进入了一个很长的目录,现在我们想要回到/tmp/very/long/directory这个目录给怎么办呢?很简单嘛,不就是cd ../../../../.. ,这个有点复杂啊。同样我们也可以使用alias来命名几个返回上级目录的简单命令。
$ alias cd1=cd ..<span style="white-space:pre"> </span># 返回到上级目录
$ alias cd2=cd ../..<span style="white-space:pre"> </span># 跳转两级目录
$ alias cd3=cd ../../..<span style="white-space:pre"> </span># 跳转三级目录
$ alias cd4=cd ../../../..<span style="white-space:pre"> </span># 跳转四级目录
$ alias cd5=cd ../../../../..<span style="white-space:pre"> </span># 跳转五级目录
有了这些别名,刚才的任务就可以在终端输入cd5就行了。嗯,别忘了将这些别名写到~/.bashrc里面去哈。
三、创建目录的同时进入目录
在多数情况下,我们创建好了一个目录后就会进入到这个目录里面去。那么我们需要先mkdir,再cd到这个目录里面去。下面这招可以让你在创建号目录的同时进入到目录里面去,是不是很酷。
$ vi ~/.bash_profile
function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\"";
}
这其实就是在~/.bashrc中创建了一个函数,这个函数先创建好目录,然后进入这个目录。
四、在最近使用的两个目录间切换
这个最简单,使用cd -就可以了。
$ pwd
/home/sunshine
$ deep
$ pwd
/tmp/very/long/directory/structure/that/is/too/deep
$ cd -
$ pwd
/home/sunshine
$ cd -
$ pwd
/tmp/very/long/directory/structure/that/is/too/deep