Learn Python the Hard Way 中文版

附录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再自己创建几个目录,在你新创建的目录间进行切换。
  • 给自己解释下pushdpopd命令的输出。注意下,它是如何像一个堆栈一样工作的。
  • 你已经知道这些, 但请记住mkdir -p 将会创建整个路径,即使其中的目录都不存在。这是我在这节练习中首先要做的事情。