dirs

1
显示目录栈的内容
2
常用参数:
3
-p  
4
每行显示一条记录
5
-v  
6
每行显示一条记录,同时展示该记录在栈中的index
7
-c
8
清空目录栈
1
[yhkl@yhkl data]$ dirs -v
2
 0  ~/data

pushd

1
pushd后面如果直接跟目录使用,会切换到该目录并且将该目录置于目录栈的栈顶。
2
(时时刻刻都要记住,目录栈的栈顶永远存放的是当前目录。如果当前目录发生变化,那么目录栈的栈顶元素肯定也变了;反过来,如果栈顶元素发生变化,那么当前目录肯定也变了。)
3
pushd不带任何参数。
4
将目录栈最顶层的两个目录进行交换
1
[yhkl@yhkl data]$ dirs -v
2
 0  ~/data
3
[yhkl@yhkl data]$ pushd /tmp
4
/tmp ~/data
5
[yhkl@yhkl tmp]$ dirs -v
6
 0  /tmp
7
 1  ~/data
8
[yhkl@yhkl tmp]$

popd

1
将目录栈中的栈顶元素出栈
2
popd不带参数
3
将目录栈中的栈顶元素出栈。这时,栈顶元素发生变化,自然当前目录也会发生相应的切换
4
5
popd +n
6
将目录栈中的第n个元素删除(这里的n就是命令dirs -v显示的目录index,n从栈顶开始)
1
[yhkl@yhkl home]$ dirs -v
2
 0  /home
3
 1  /tmp
4
 2  ~/data
5
[yhkl@yhkl home]$ popd +1
6
/home ~/data
7
[yhkl@yhkl home]$ dirs -v
8
 0  /home
9
 1  ~/data
10
[yhkl@yhkl home]$ pushd /tmp
11
/tmp /home ~/data
12
[yhkl@yhkl tmp]$ dirs -v
13
 0  /tmp
14
 1  /home
15
 2  ~/data
16
[yhkl@yhkl tmp]$ popd +2
17
/tmp /home
18
[yhkl@yhkl tmp]$ dirs -v
19
 0  /tmp
20
 1  /home

pushd和popd的+n和-n区别

1
+n的含义是从栈顶往栈底方向进行计数,从0开始;
2
-n的含义刚好相反,从栈底向栈顶方向计数,从0开始。