pushd 和 popd:对目录栈进行操作

介绍

目录栈是保存目录的栈结构,当前目录处于该栈结构的顶端,可使用dirs查看目录栈的目录。pushd命令可添加一个目录到目录栈,popd命令会清除目录栈中的一个目录。

  • dirs
    dirs有三个参数:
    -p 每行显示一条栈结构中的目录
    -v 每行展示一条栈结构中的目录及其index
    -c 清空目录栈中除当前目录的其他目录

  • pushd
    1)pushd后面跟目录路径,会切换到该目录并将其添加到目录栈,同时显示当前目录栈中的所有目录。
    2)直接执行pushd,会调换目录栈最顶端的两个目录。
    3)pushd+index值,如pushd +1表示切换到目录栈中index值为1的目录。

  • popd
    1)直接执行popd,会移除目录栈中的栈顶。
    2)popd + index,如popd +1表示删除目录栈中index值为1的目录。
    注:有时会用到pushd-index,popd-index,表示从栈底往上数。

代码示例

点击查看代码
~/biosoft/alphafold2.3$ dirs
# ~/biosoft/alphafold2.3
~/biosoft/alphafold2.3$ dirs -v
# 0  ~/biosoft/alphafold2.3
~/biosoft/alphafold2.3$ pushd database/mgnify/
# ~/biosoft/alphafold2.3/database/mgnify ~/biosoft/alphafold2.3
~/biosoft/alphafold2.3/database/mgnify$ pushd
# ~/biosoft/alphafold2.3 ~/biosoft/alphafold2.3/database/mgnify
~/biosoft/alphafold2.3$ pushd+1
# pushd+1: command not found
~/biosoft/alphafold2.3$ pushd + 1
# -bash: pushd: +: invalid number
# pushd: usage: pushd [-n] [+N | -N | dir]
~/biosoft/alphafold2.3$ pushd +1
# ~/biosoft/alphafold2.3/database/mgnify ~/biosoft/alphafold2.3
~/biosoft/alphafold2.3/database/mgnify$ popd
# ~/biosoft/alphafold2.3
posted @ 2023-01-09 23:49  yayagogogo  阅读(94)  评论(0编辑  收藏  举报