在Linux中,一般使用cd命令来切换目录,当你工作在不同目录中,且需要频繁两个目录直接进行切换,你将发现你有很多时间都浪费在重复输入上。如果这些目录不在同一个根目录中,你不得不在切换时输入完整的路径名,这难免让人有些难以忍受。但你可以使用pushd来快速切换两个目录。
使用示例:
我当前所在目录
/root/test1
切换到/opt/jdk-11/
- pushd /opt/jdk-11/
- # 输出:/opt/jdk-11 ~/test1
切换到/opt/kafka_2.12-3.2.0/
- pushd /opt/kafka_2.12-3.2.0/
- # 输出:/opt/kafka_2.12-3.2.0 /opt/jdk-11 ~/test1
dirs -v 查看当前目录栈的情况
- dirs -v
- #输出:
- # 0 /opt/jdk-11
- # 1 /opt/kafka_2.12-3.2.0
- # 2 ~/test1
这样话可以看到目录栈中就有三个目录了,可以直接执行pushd进行前两个目录切换,比如,执行pushd,然后执行pwd查看目录,发现已经切换过去了。然后再次执行pushd会发现有切换回上一次目录了。
pushd +n切换到对应目录
可以使用pushd +n切换到指定的目录,比如pushd +2 会切换到序号2所在的目录
- pushd +2
- # 输出:/root/test1
清空目录栈
dirs -c
删除指定目录栈
使用popd 可以进行出栈,会删除序号为0的,也可以通过序号进行删除 popd +序号 ,比如
popd +1
pushd和popd的+n和-n区别