程序员人生 网站导航

Linux 指令详解 pushd 快速切换目录

栏目:服务器时间:2015-03-14 09:32:00
指令:pushd
在不同目录间切换

在命令行模式中,当需要在不同目录中不停的切换时会发现不停的输入目录很麻烦,这个时候就需要用上pushd函数了

pushd工作原理:
pushd将指定目录压入当前shell保护的目录栈,从而可以实现多个不同路径之间的切换.

Ps:默许情况下,pushd函数可能不包括在你的Linux中,但存在于red Hat和用Red Hat驱动的系统中。

语法:
# pushd [-n] [+N | -N | dir]

参数:
-n: 只将目录加入到目录栈中,不切换目录 +N: 将第N个目录移至栈顶(+ 表示从左或上边(栈顶)数起,数字从0开始,栈顶表示为+0) -N: 将第N个目录移至栈顶(- 表示从右或下边(栈底)数起,数字从0开始,栈底表示为-0) dir:指定需要加入目录栈的目录,并同时切换到该目录

Ps:
1、 不带参数时pushd命令将交换目录栈栈顶的两个目录(同等于cd -)
2、 如果加入目录时没有指定目录名称,则会将当前的工作目录置入目录栈的最顶端
3、 如果加入目录时没有指定目录栈的位置,会置入目录栈的最顶端
4、 最左侧或上面表示栈顶,最右或最下面边表示栈底
5、 目录栈的第0个目录(即栈顶目录),始终是当前目录
6、 最后1个被放入堆中的目录在堆的最顶部
7、 当目录栈为空时,目录栈的栈底保存的是履行 pushd 命令时的工作目录
8、 当加入pushd和1个路径名时,将自动产生1个堆栈,内容是加入的目录名和当前工作的目录名



实例
现在有以下3个目录需要常常的切换:/doiido/boy : /home/user : /etc/sshd

1:首先将3个目录放入pushd栈中
# pushd /doiido/boy
/doiido/boy ~
# pushd /home/user
/home/user /doiido/boy ~
# pushd /etc/ssh
/etc/ssh /home/user /doiido/boy ~


2:查看栈中的内容
dirs命令是查看目录栈中的内容
# dirs -v
 0  /etc/ssh
 1  /home/user
 2  /doiido/boy
 3  ~


3:切换
3.1:在/etc/ssh和/home/user之间相互切换
# pushd

3.2:切换到/doiido/boy目录
# pushd +2

4:清空
# dirs -c


其他:
1、如果需要从目录栈中删除1个目录,则使用popd。具体详见popd使用方法

2、如果想查看目录栈中目录列表,则使用dirs。具体详见dirs使用方法



------分隔线----------------------------
------分隔线----------------------------

最新技术推荐