如何在Linux系统中快速切换目录(目录栈的使用) pushd popd dirs
2014-11-26 14:34
344 查看
转自:http://www.360doc.com/content/13/1129/15/14530056_333187813.shtml
最近在做Linux嵌入式系统的大作业,经常需要切换Linux系统中目录,实在太麻烦,之前是靠打开多个终端来解决,但这样又会显得窗口太多很乱,除非放在不同的工作区但又觉得没有必要。今天看书发现解决这个问题其实很容易,只需要使用Linux的目录栈就行了,操作的指令也只有两个,一个是pushd,一个是popd,非常好用。
这里就不多解释什么是栈了,而目录栈就相当于把用户正在使用的目录列表存放起来,而且具有栈的先入后出的特性。
闲话少说,具体看看如何用目录栈来简化的我们操作。
假设我们需要经常在三个目录下切换,分别是:~/src,/opt/test ,
/etc。注:代字符~是用户主目录的名字。
另外假设我们是刚打开终端,初始位置在:~
平常我们用cd进入一个目录,这个时候就不要这么用,请用pushd,假设我们要进目录(如果存在的话):~/src,那么:
simon@simon-A8Sc:~$ pushd ~/src/
~/src
~
simon@simon-A8Sc:~/src$
可以看到终端先回显出了目录栈的最新内容,此时有两个:~/src和~。最左边相当于目录栈的顶部,最右边相当与目录栈的底部。同时,重要的是,当前目录切换到了:~/src。
再切换到需要另外用的一个目录 /opt/test
simon@simon-A8Sc:~/src$ pushd /opt/test
/opt/test
~/src ~
simon@simon-A8Sc:/opt/test$
可以看到栈顶部多出了目录/opt/test,而且当前目录也切换到了/opt/test。
为了方便说明,再次压入第三个目录/etc
simon@simon-A8Sc:/opt/test$ pushd /etc/
/etc
/opt/test ~/src
~
simon@simon-A8Sc:/etc$
情况1. 如何在这三个目录快速切换呢?假设目录栈现就是现在这样,我们要回到/opt/test,可以使用无参数的命令pushd,它表示切换目录栈最上面的两个目录:
simon@simon-A8Sc:/etc$ pushd
/opt/test
/etc ~/src
~
simon@simon-A8Sc:/opt/test$
情况2. 但如果想从/etc直接切换到 ~/src呢?此时可以使用带参数的命令pushd,
simon@simon-A8Sc:/etc$ pushd +2
~/src
~ /etc
/opt/test
simon@simon-A8Sc:~/src$
参数+2中的2指编号,编号从栈顶开始算起,顶部为0。具体栈里面的目录顺序是怎么变的?可以看作是循环移了两位。
如何查看目录栈?
使用命令dirs
如何将目录从栈中弹出?
使用命令popd。
无参数时,将栈顶目录弹出,同时当前目录会变成最新的栈顶目录。
有参数时,如$ popd +2,则是将编号为2的目录弹出。不会改变当前目录。
最近在做Linux嵌入式系统的大作业,经常需要切换Linux系统中目录,实在太麻烦,之前是靠打开多个终端来解决,但这样又会显得窗口太多很乱,除非放在不同的工作区但又觉得没有必要。今天看书发现解决这个问题其实很容易,只需要使用Linux的目录栈就行了,操作的指令也只有两个,一个是pushd,一个是popd,非常好用。
这里就不多解释什么是栈了,而目录栈就相当于把用户正在使用的目录列表存放起来,而且具有栈的先入后出的特性。
闲话少说,具体看看如何用目录栈来简化的我们操作。
假设我们需要经常在三个目录下切换,分别是:~/src,/opt/test ,
/etc。注:代字符~是用户主目录的名字。
另外假设我们是刚打开终端,初始位置在:~
平常我们用cd进入一个目录,这个时候就不要这么用,请用pushd,假设我们要进目录(如果存在的话):~/src,那么:
simon@simon-A8Sc:~$ pushd ~/src/
~/src
~
simon@simon-A8Sc:~/src$
可以看到终端先回显出了目录栈的最新内容,此时有两个:~/src和~。最左边相当于目录栈的顶部,最右边相当与目录栈的底部。同时,重要的是,当前目录切换到了:~/src。
再切换到需要另外用的一个目录 /opt/test
simon@simon-A8Sc:~/src$ pushd /opt/test
/opt/test
~/src ~
simon@simon-A8Sc:/opt/test$
可以看到栈顶部多出了目录/opt/test,而且当前目录也切换到了/opt/test。
为了方便说明,再次压入第三个目录/etc
simon@simon-A8Sc:/opt/test$ pushd /etc/
/etc
/opt/test ~/src
~
simon@simon-A8Sc:/etc$
情况1. 如何在这三个目录快速切换呢?假设目录栈现就是现在这样,我们要回到/opt/test,可以使用无参数的命令pushd,它表示切换目录栈最上面的两个目录:
simon@simon-A8Sc:/etc$ pushd
/opt/test
/etc ~/src
~
simon@simon-A8Sc:/opt/test$
情况2. 但如果想从/etc直接切换到 ~/src呢?此时可以使用带参数的命令pushd,
simon@simon-A8Sc:/etc$ pushd +2
~/src
~ /etc
/opt/test
simon@simon-A8Sc:~/src$
参数+2中的2指编号,编号从栈顶开始算起,顶部为0。具体栈里面的目录顺序是怎么变的?可以看作是循环移了两位。
如何查看目录栈?
使用命令dirs
如何将目录从栈中弹出?
使用命令popd。
无参数时,将栈顶目录弹出,同时当前目录会变成最新的栈顶目录。
有参数时,如$ popd +2,则是将编号为2的目录弹出。不会改变当前目录。
相关文章推荐
- Linux系统下如何快速在最近的2个目录之间来回切换
- Linux 切换目录更方便: pushd,popd,dirs,cd
- [Linux]:linux [bash]切换目录更方便: pushd,popd,dirs,cd
- [linux][bash]让切换目录更方便: pushd,popd,dirs,cd -
- [linux][bash]让切换目录更方便: pushd,popd,dirs,cd -
- Linux 指令详解 pushd 快速切换目录
- 如何在Linux下环境下快速切换工作目录
- linux系统下快速切换到oracle目录下
- 如何使用_SSHFS_通过_SSH_挂载远程的_Linux_文件系统或者目录
- [bash]让切换目录更方便: pushd,popd,dirs,cd -
- Linux 系统使用命令快速切换多个路径
- 如何使用c语言递归地列出linux系统的所有目录和文件
- [bash]让切换目录更方便: pushd,popd,dirs,cd -
- 在Linux中使用pushd和popd命令操作目录的用法
- 如何使用 SSHFS 通过 SSH 挂载远程的 Linux 文件系统或者目录
- 多个目录之间的切换-pushd、popd、dirs
- 在 Linux 中使用 pushd 和 popd 命令来进行高效的目录导航
- pushd,popd,dirs,cd -让切换目录更方便
- linux如何快速切换到某目录
- 让切换目录更方便: pushd,popd,dirs,cd