Shell 使用 pushd 和 popd实现快速定位
Shell 使用 pushd 和 popd实现快速定位,如果需要在文件系统的多个位置上切换时,惯常的实践就是复制并粘贴路径,然后使用cd
命令。但当涉及位置不止一个的时候,这种方法的效率并不高。如果需要在位置之间来回切换,时间都耗费在输入或粘贴路径上了。Bash和其他shell都支持使用pushd
和popd
命令切换目录。
预备知识
pushd
和popd
可以用于在多个目录之间切换而无需重新输入目录路径。这两个命令会创建一个路径栈,它是一个保存了已访问目录的LIFO列表(LastInFirstOut,后进先出)。
实战演练
可以使用pushd
和popd
来代替cd
命令。
(1) 压入并切换路径:
现在栈中包含/var/www ~,当前目录为 /var/www。
(2) 再压入下一个目录路径:
现在栈中包含/usr/src /var/www ~,当前目录为/usr/src。
你可以根据需要压入更多的目录路径。
(3) 查看栈的内容:
(4) 当你想切换到栈中任意一个路径时,将每条路径从0编号到n,然后使用你希望切换到的路径编号。例如:
这条命令会将栈进行翻转并切换到目录/usr/share。pushd
总是向栈中添加路径。如果要从栈中删除路径,可以使用popd
。
(5) 删除最近压入的路径并切换到下一个目录:
假设现在栈包含/usr/src /var/www ~ /usr/share /etc,当前目录是 /usr/src,popd
会将栈更改为/var/www ~ /usr/share /etc,然后把当前目录切换至/var/www。
(6) 用popd +num
可以从栈中移除特定的路径。num
是从左到右、从0到n开始计数的。
补充内容
让我们再进行一些基本的目录定位练习。
当涉及3个以上的目录时,pushd
和popd
就可以发挥作用了。但是如果只涉及两个位置,还有另一个更简便的方法:cd -
。
假设当前路径是 /var/www,执行下面的命令:
现在要切换回 /var/www,不需要再输入/var/www了,只执行:
你还可以再切换到 /usr/src:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2019-12-13 Kubernetes集群之清除集群
2018-12-13 kubectl top查看k8s pod的cpu , memory使用率情况
2017-12-13 centos6下从源码安装setuptools和pip