数据结构:根据一组精确的规则存储和检索数据的实体。
栈:一种数据结构,每次只能存入和检索一个元素,在任何时候,下一个要检索的数据是最后一个存储进入的数据。后进后出(FIFO)
压入:存储数据元素,最近一次压入的数据元素处在栈的顶部。
弹出:从栈顶检索数据元素。
shell提供了一个类似栈的功能,来存放目录名称。
pushd命令将目录的名称压入目录栈中,popd命令从栈中弹出一个目录名称,dirs命令显示栈的内容。
目录栈是一种高级工具,运行维护一个目录列表,每当需要时,可以将工作目录改变为列表中的一个目录。
在任何时候,栈顶的目录名称就是当前的工作目录。
改变栈顶目录名称就会自动地改变工作目录,改变工作目录也会自动地改变栈顶目录名称。
命令 | 动作 |
dirs | 显示栈中目录名称(home目录显示为~) |
dirs -l | 显示栈中目录名称(home目录显示为完整路径名) |
dirs -v | 显示栈中目录名称(每行一个,并有数字标识) |
pushd 目录名称 | 将指定目录压入栈中,并改变工作目录(栈顶改变) |
pushd +n | 经目录#n移到栈顶,并改变工作目录(栈顶改变) |
popd | 弹出栈顶,并改变工作目录(栈顶改变) |
popd +n | 从栈中移除目录#n |
dirs -c | 除工作目录外,移除目录栈中所有目录 |
ps:
dirs -c 会清空栈,但是永远不会看到一个完全空的栈,因为栈顶永远是工作目录。