龙空技术网

Linux下高效切换目录之pushd、popd、dirs

波波说运维 248

前言:

此刻姐妹们对“切换目录cd命令是什么”大概比较关心,小伙伴们都需要了解一些“切换目录cd命令是什么”的相关资讯。那么小编也在网摘上收集了一些有关“切换目录cd命令是什么””的相关内容,希望大家能喜欢,姐妹们快快来了解一下吧!

概述

Linux系统对于目录的切换,大家肯定会想到一个命令:cd 命令。

cd 命令确实很方便,但如果需要频繁在几个目录切换,如果用 cd 命令的话,那么就需要不停地 cd ,这时候就很麻烦了,在这种情况下,我们就可以用三个命令:pushd 、 popd 、 dirs 来高效进行目录切换。

这三个命令其实都是对目录栈 进行操作,而目录栈 就是一个保存目录的栈结构,该栈结构的顶端永远都存放着当前目录。栈都是遵循着后进先出的原则,也就是说在栈结构里,后面进栈的元素,将先出栈。

一、目录栈指令

目录栈是用户最近访问过的系统目录列表,并以堆栈的形式管理。栈中的内容与Shell环境变量DIRSTACK的值对应。

1、dirs

1.1、功能

显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录)

1.2、语法

格式:dirs [-clpv] [+n] [-n]

参数说明:

注意:dirs始终显示当然目录, 再是堆栈中的内容;即使目录堆栈为空, dirs命令仍然只显示当然目录

2、pushd

2.1、功能

pushd命令常用于将目录加入到栈中,加入记录到目录栈顶部,并切换到该目录;若pushd命令不加任何参数,则会将位于记录栈最上面的2个目录对换位置

2.2、语法

格式:pushd [目录 | -N | +N] [-n]

参数说明:

3、popd

3.1、功能

popd用于删除目录栈中的记录;如果popd命令不加任何参数,则会先删除目录栈最上面的记录,然后切换到删除过后的目录栈中的最上面的目录

3.2、语法

格式:pushd [-N | +N] [-n]

参数说明:

二、 实验测试

1、入栈与出栈

#mkdir /tmp/dir{1,2,3,4}#for ((i=1;i<=4;i++))dopushd /tmp/dir${i}done#dirs#popd(相当于popd +0)#pushd /tmp/dir4# popd +1# popd -2# pushd /tmp/dir3# pushd /tmp/dir2# pushd -1

注意:最左边表示栈顶,最右边表示栈底

2、清空栈

# dirs# dirs -c# dirs

3、列表形式显示的栈的内容

#for ((i=1;i<=4;i++))dopushd /tmp/dir${i}done# dirs -l -v

后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下~

标签: #切换目录cd命令是什么