# 附录A-练习8:目录切换(pushd, popd)
这节练习中,你将学习如何使用`pushd`实现保存你的当前位置,并去一个新的位置,然后您将学习如何使用`popd`恢复保存位置。
### 做到这些
### Linux/OSX
~~~
$ cd temp
$ mkdir -p i/like/icecream
$ pushd i/like/icecream
~/temp/i/like/icecream ~/temp
$ popd
~/temp
$ pwd
~/temp
$ pushd i/like
~/temp/i/like ~/temp
$ pwd
~/temp/i/like
$ pushd icecream
~/temp/i/like/icecream ~/temp/i/like ~/temp
$ pwd
~/temp/i/like/icecream
$ popd
~/temp/i/like ~/temp
$ pwd
~/temp/i/like
$ popd
~/temp
$ pushd i/like/icecream
~/temp/i/like/icecream ~/temp
$ pushd
~/temp ~/temp/i/like/icecream
$ pwd
~/temp
$ pushd
~/temp/i/like/icecream ~/temp
$ pwd
~/temp/i/like/icecream
$
~~~
### Windows
~~~
> cd temp
> mkdir -p i/like/icecream
Directory: C:\Users\zed\temp\i\like
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 12/20/2011 11:05 AM icecream
> pushd i/like/icecream
> popd
> pwd
Path
----
C:\Users\zed\temp
> pushd i/like
> pwd
Path
----
C:\Users\zed\temp\i\like
> pushd icecream
> pwd
Path
----
C:\Users\zed\temp\i\like\icecream
> popd
> pwd
Path
----
C:\Users\zed\temp\i\like
> popd
>
~~~
### 你应该学到的
你使用这些命令进入了程序员的领土,这些命令是如何方便使用,我一定要教会你使用。这些命令让你暂时去到不同的目录,然后再回来,实现两个目录之间的轻松切换。
`pushd`命令把你当前的目录放到一个list中,然后切换到另一个目录。就好像说"保存我在哪里,然后去下一个地方"
`popd`命令把你之前存储的目录弹出来,然后带你回到那个目录。
最后, 在Unix上,如果你不带任何参数运行`pushd`,将会在当前目录以及你之前最后一次保存的目录之间进行切换。这是来回切换两个目录的方法,但它在Powershell中不起作用。
### 更多练习
> - 使用这两个命令在你计算机上的所有目录中来回切换。
> - 删除目录`i/like/icecream`再自己创建几个目录,在你新创建的目录间进行切换。
> - 给自己解释下`pushd` 和 `popd`命令的输出。注意下,它是如何像一个堆栈一样工作的。
> - 你已经知道这些, 但请记住`mkdir -p` 将会创建整个路径,即使其中的目录都不存在。这是我在这节练习中首先要做的事情。
- 序言
- 前言
- 简介
- 0:安装和准备
- 1:第一个程序
- 2:注释和“#”井号
- 3:数字和数学计算
- 4:变量和命名
- 5:更多的变量和打印
- 6:字符串和文本
- 7:更多的打印(输出)
- 8:打印, 打印
- 9:打印, 打印, 打印
- 10:那是什么?
- 11:提问
- 12:提示别人
- 13:参数, 解包, 变量
- 14:提示和传递
- 15:读文件
- 16:读写文件
- 17:更多文件操作
- 18:命名, 变量, 代码, 函数
- 19:函数和变量
- 20:函数和文件
- 21:函数的返回值
- 22:到目前为止你学到了什么?
- 23:阅读代码
- 24:更多的练习
- 25:更多更多的练习
- 26:恭喜你,可以进行一次考试了
- 27:记住逻辑
- 28:布尔表达式
- 29:IF 语句
- 30:Else 和 If
- 31:做出决定
- 32:循环和列表
- 33:while循环
- 34:访问列表元素
- 35:分支和函数
- 36:设计和调试
- 37:复习符号
- 38:列表操作
- 39:字典,可爱的字典
- 40:模块, 类和对象
- 41:学会说面向对象
- 42:对象、类、以及从属关系
- 43:基本的面向对象的分析和设计
- 44:继承Vs.包含
- 45:你来制作一个游戏
- 46:项目骨架
- 47:自动化测试
- 48:更复杂的用户输入
- 49:写代码语句
- 50:你的第一个网站
- 51:从浏览器获取输入
- 52:开始你的web游戏
- 来自老程序员的建议
- 下一步
- 附录A:命令行教程
- 简介
- 安装和准备
- 路径, 文件夹, 名录 (pwd)
- 如果你迷路了
- 创建一个路径 (mkdir)
- 改变当前路径 (cd)
- 列出当前路径 (ls)
- 删除路径 (rmdir)
- 目录切换(pushd, popd)
- 生成一个空文件(Touch, New-Item)
- 复制文件 (cp)
- 移动文件 (mv)
- 查看文件 (less, MORE)
- 输出文件 (cat)
- 删除文件 (rm)
- 退出命令行 (exit)
- 下一步