pushd和popd命令的用法
在编写shell的时候,经常会在目录之间进行切换,如果使用cd命令经常会切换错误,pushd和popd使用栈的方式来管理目录。
dirs
用于显示当前目录栈中的所有记录。
pushd
将目录加入到栈顶部,并将当前目录切换到该目录。若不加任何参数,该命令用于将栈顶的两个目录进行对调。
popd
删除目录栈中的目录。若不加任何参数,则会首先删除目录栈顶的目录,并将当前目录切换到栈顶下面的目录。
命令格式:pushd [-N | +N] [-n]
+N
将第N个目录删除(从左边数起,数字从0开始)
-N
将第N个目录删除(从右边数起,数字从0开始)
-n
将目录出栈时,不切换目录
example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| [root@localhost tmp]# mkdir /tmp/dir{1,2,3,4} [root@localhost tmp]# pushd /tmp/dir1 /tmp/dir1 /tmp [root@localhost dir1]# pushd /tmp/dir2 /tmp/dir2 /tmp/dir1 /tmp [root@localhost dir2]# pushd /tmp/dir3 /tmp/dir3 /tmp/dir2 /tmp/dir1 /tmp [root@localhost dir3]# pushd /tmp/dir4 /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1 /tmp # dirs的显示内容跟pushd完成后的输出一致 [root@localhost dir4]# dirs /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1 /tmp
[root@localhost dir4]# popd /tmp/dir3 /tmp/dir2 /tmp/dir1 /tmp
# 带有数字比较容易出错 [root@localhost dir3]# popd +1 /tmp/dir3 /tmp/dir1 /tmp
# 清除目录栈 [root@localhost dir3]# dirs -c [root@localhost dir3]# dirs /tmp/dir3
|