目录栈指令
目录栈是用户最近访问过的系统目录列表,并以堆栈的形式管理。栈中的内容与Shell环境变量 DIRSTACK
的值对应
1 dirs
1.1 功能
显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录)
1.2 语法
格式:
dirs [-clpv] [+n] [-n]
选项
- -c 删除目录栈中的所有记录
- -l 以完整格式显示(绝对路径)
- -p 一个目录一行的方式显示
- -v 每行一个目录来显示目录栈的内容,每个目录前加上的编号
- +N 显示从左到右的第n个目录,数字从0开始
- -N 显示从右到左的第n个日录,数字从0开始
注意:dirs始终显示当人们目录, 再是堆栈中的内容;即使目录堆栈为空, dirs命令仍然只显示当前目录
2 pushd
2.1 功能
将目录加入到栈顶部,并切换到该目录;若 pushd
命令不加任何参数,则会将位于记录栈最上面的2个目录对换位置
2.2 语法
格式:
pushd [目录 | -N | +N] [-n]
选项
- 目录 将该目录加入到栈顶,并执行”cd 目录”,切换到该目录
- +N 将第N个目录移至栈顶(从左边数起,数字从0开始)
- -N 将第N个目录移至栈顶(从右边数起,数字从0开始)
- -n 将目录入栈时,不切换目录
3 popd
3.1 功能
删除目录栈中的记录;如果popd命令不加任何参数,则会先删除目录栈最上面的记录,然后切换到删除过后的目录栈中的最上面的目录
3.2 语法
格式:
pushd [-N | +N] [-n]
选项
- +N 将第N个目录删除(从左边数起,数字从0开始)
- -N 将第N个目录删除(从右边数起,数字从0开始)
- -n 将目录出栈时,不切换目录
4 示例
入栈与出栈
1 | [root@root]:~# mkdir /root/dir{1,2,3,4} |
清空栈
1 | [root@root]:~# dirs |
列表形式显示的栈的内容
1 | [root@root:/root/dir4]# dirs -l -v |
注:如果只是两个目录之间的切换 cd -
足矣,而且方便。