- 简介
- 第一章 - 关于 CD
- 第二章 - 基本命令
- Hack-7 Grep
- Hack-8 Grep 与正则表达式
- Hack-9 Find 命令
- Hak-10 重定向
- Hack-11 Join 命令
- Hack-12 Tr 命令
- Hack-13 Xargs 命令
- Hack-14 Sort 命令
- Hack-15 Uniq 命令
- Hack-16 Cut 命令
- Hack-17 Stat 命令
- Hack-18 Diff 命令
- Hack-19 Ac 命令
- Hack-20 让命令在后台执行
- Hack-21 Sed 替换基础
- Hack-22 Awk 简介
- Hack-23 VIM 基本入门
- Hack-24 Chmod 命令
- Hack-25 Tail -f -f
- Hack-26 Less 命令
- Hack-27 Wget 下载器
- 第三章 - SSH 技巧
- 第四章 - 日期设置
- 第五章 - PS* 介绍
- 第六章 - 压缩和打包
- 第七章 - 历史命令
- 第八章 - 系统任务管理
- 第九章 - 安装软件
- 第十章 - LAMP 套装
- 第十一章 - Bash 脚本
- 第十二章 - 系统性能监控
- 第十三章 - 额外的技巧
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Hack-5 操纵目录栈
操纵目录栈
刚才我还特地请教了下我们宿舍打 ACM 的杰神,讲了一下堆、栈、队列之间的差别和联系,然后,这一小节的题目还算不错,栈,先进后出。
dirs
显示当前目录栈的内容pushd
入目录栈popd
出目录栈
那么这三个命令都有什么用处呢?
不罗嗦,看操作:
➤ for i in {1..4};do mkdir dir_$i;done
mkdir: created directory ‘dir_1’
mkdir: created directory ‘dir_2’
mkdir: created directory ‘dir_3’
mkdir: created directory ‘dir_4’
➤ cd dir_1
➤ pushd . #pushd 完成之后总会进入这一个目录
/tmp/dir_1 /tmp/dir_1
➤ cd /tmp/dir_2
➤ pushd . #而且还会显示当前的目录栈内容
/tmp/dir_2 /tmp/dir_2 /tmp/dir_1
➤ cd /tmp/dir_3
➤ pushd .
/tmp/dir_3 /tmp/dir_3 /tmp/dir_2 /tmp/dir_1
➤ cd /tmp/dir_4
➤ pushd .
/tmp/dir_4 /tmp/dir_4 /tmp/dir_3 /tmp/dir_2 /tmp/dir_1
➤ dirs #第一个是 dir_4,因为栈的顶总是当前目录
/tmp/dir_4 /tmp/dir_4 /tmp/dir_3 /tmp/dir_2 /tmp/dir_1
那么到现在为止我们的目录栈看起来是这样的:
1 - /tmp/dir_1
2 - /tmp/dir_2
3 - /tmp/dir_3
4 - /tmp/dir_4
接下来就轮到 popd
啦:
➤ pwd
/tmp/dir_4
➤ dirs #dirs 显示目录栈内容
/tmp/dir_4 /tmp/dir_4 /tmp/dir_3 /tmp/dir_2 /tmp/dir_1
➤ popd #每次目录出栈之后都会显示目录栈的内容
/tmp/dir_4 /tmp/dir_3 /tmp/dir_2 /tmp/dir_1
➤ pwd #并且进入那个目录
/tmp/dir_4
➤ popd
/tmp/dir_3 /tmp/dir_2 /tmp/dir_1
➤ pwd
/tmp/dir_3
➤ popd
/tmp/dir_2 /tmp/dir_1
➤ pwd
/tmp/dir_2
➤ popd
/tmp/dir_1
➤ pwd
/tmp/dir_1
➤ popd #栈空了,没有了
bash: popd: directory stack empty
➤
看了这么多,这些组合到底有什么用?其实吧,如果你手速够快记忆力够好的话,这些对你没啥用,不过呢,像我这样比较懒的人,这东西就有用了,比如,我要在几个目录之间切换,有不想每次都输入那些命令,怎么办?就用这种方法,因为 pushd 不仅进入了这个目录,而且还给了我一个后退的途径,比 cd -
更高级一点。甚至我可以用 function cd() { pushd $@ &> /dev/null; }
来将 pushd
变成 cd
,反正我也不亏,是不是 :P
本书简介:
- Linux 进阶技巧
- 巧妙的命令组合
- Bash 某些技巧
- 一共一百零一个(包括充数的)
- 最后有个奖励章(额外技巧)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论