【Bash百宝箱】shell目录栈(dirs、pushd、popd)

在shell中,目录栈是一组最近访问过的目录,使用内建命令dirs、pushd、popd进行管理。dirs命令可以显示目录栈的内容,pushd命令可以把目录压入目录栈、更改当前目录,popd命令可以从目录栈中移除目录、更改当前目录,下面对这三个命令的用法作个介绍。

1、dirs

dirs [-clpv] [+n] [-n]

dirs命令可以列出当前目录栈的内容,用pushd命令添加目录,popd命令删除目录。

+n    显示从零开始的第n个目录,从目录栈顶开始计数。
-n    显示从零开始的第n个目录,从目录栈底开始计数。
-c    删除目录栈中所有目录。
-l     显示目录的长列表,默认的列表会用波浪号来表示主目录。
-p    列出目录时每个目录占一行。
-v    列出目录时每个目录占一行,且每行前面都显示这个目录在栈中的位置。

2、pushd

pushd [-n] [+N] [-N]
pushd [-n] [dir]

pushd命令在目录栈的顶端保存目录dir并进入该目录中,如果没有参数,则交换栈顶的两个目录。

-n    在目录栈中添加目录时不按常规改变工作目录,而只对目录栈进行操作。
+N    轮转目录栈,把第n个目录移到栈顶, 从目录栈顶开始计数。
-N   轮转目录栈,把第n个目录移到栈顶, 从目录栈底开始计数。
dir    把目录dir加入到栈顶,并进入这个目录。

3、popd

popd [-n] [+N] [-N]

popd命令没有参数时,删除目录栈中的栈顶目录,并进入到新的栈顶目录。
+N 删除从零开始的第N个目录,从目录栈顶开始计数。
-N 删除从零开始的第N个目录,从目录栈底开始计数。
-n 在目录栈中删除目录时,禁止改变工作目录,只操纵目录栈。

你可能感兴趣的:(Bash百宝箱)