18. Bash Shell - 目录栈内置功能

开篇词

借助目录栈,我们可以将我们按顺序访问的目录推入目录栈中,当我们完成一系列操作之后,我们可以基于目录栈的记录按原路往回至源路径。
 

目录栈命令

目录栈给我们提供了三个可用的命令。

dirs

显示目录栈中所记录的所有目录:

help dirs

查看 dirs 的定义及用途

pushd

将制指定目录推入目录栈中并将当前工作目录切换至该目录:

help pushd

pushd 的定义及用途

popd

将目录栈中的末条目录记录从中移除并将当前工作目录切换至该目录:

help popd

查看 popd 的定义及用途
 

准备好目录

我们来准备一些用来演示的目录:

mkdir -p a/b/c/d/e/f/g
tree a

创建了层叠式的目录并显示它们的树状结构
现在我们创建好了层叠式的目录,我们可以开始演示的操作了。目录栈可以存储我们推入的任意目录,这里所使用的层叠式目录只是为了方便演示操作。
 

命令用法

添加目录

我们将目录添加至目录栈:

cd ~
dirs
pushd a
pushd b
pushd c
pushd d
pushd e
pushd f
pushd g

切换至用户主目录,查看并确认 dirs 只显示了波浪号(~)并开始将层叠式目录推入目录栈中

显示记录的目录

默认方式

借助 dirs 来打印记录的目录:

dirs

显示目录栈记录的目录

用户主目录

借助 dirs -l 来打印记录的目录并显示用户主目录,而不是显示波浪号:

dirs -l

显示目录栈记录的目录以及用户主目录,而不是波浪号

逐行

借助 dirs -l 来逐行打印记录的目录:

dirs -p

逐行显示目录栈记录的目录

逐行加索引

借助 dirs -v 来逐行打印记录的目录以及其索引:

dirs -v

逐行显示目录栈记录的目录以及其索引

首条记录

借助 dirs -0 来打印记录的第一条目录:

dirs -0

显示第一个被记录的目录

末条记录

借助 dirs +0 来打印记录的最后一条目录:

dirs +0

显示最后一个被记录的目录
 

使用记录目录

从右开始使用

借助 pushd -0 来切换至最右的一个目录并将其作为当前工作目录:

pushd -o

使用第一个记录的目录

从左开始使用

借助 pushd +1 来切换至最左侧之前的目录并将其作为当前工作目录:

pushd +1

使用之前记录的目录
 

删除记录目录

从右开始删除

借助 popd -0 来删除最右侧的一个目录:

popd -0

删除第一个记录的目录

从左开始删除

借助 popd +0 来删除最左侧的一个目录并将之前的目录作为当前工作目录:

popd +0

删除最后一个记录的目录并将之前记录的目录作为当前工作目录
 

我所撰写的英文版本

18. Bash Shell - Directory Stack Builtins
 

引用

参见

想看手册的其他内容?请访问该手册的所属专栏:《Linux 管理员手册:既简单又深刻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值