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