Tuesday, February 17, 2009

005 使用dirs,pushd和popd维护目录堆栈

你可以使用“目录堆栈”将一个目录加入到这个堆栈中,随后你可以把它从堆栈中取出来。以下三个命令会被用到:
  • dirs:显示当前目录堆栈中的内容。
  • pushd:将一个目录添加到这个堆栈中。
  • popd:将一个目录从这个堆栈中取出来然后进入到这个目录中。
dirs命令总是打印当前目录堆栈中的内容,如果这个堆栈为空,那么就打印当前的目录。如下所示:

# popd
-bash: popd: directory stack empty

# dirs
~

# pwd
/home/ramesh




那么如何使用pushd和popd命令呢,让我们先创建一些临时目录并把它们加入到当前的目录堆栈中:
# mkdir /tmp/dir1
# mkdir /tmp/dir2
# mkdir /tmp/dir3
# mkdir /tmp/dir4

# cd /tmp/dir1
# pushd .

# cd /tmp/dir2
# pushd .

# cd /tmp/dir3
# pushd .

# cd /tmp/dir4
# pushd .

# dirs
/tmp/dir4 /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1

[注意:这里的的第一个目录 (/tmp/dir4) 永远是当前的目录]

现在我们的目录堆栈中包含以下四个目录:
/tmp/dir4
/tmp/dir3
/tmp/dir2
/tmp/dir1

最后一个加入到堆栈中的目录在这个列表的最上面。所以当你执行popd命令时将会导航到/tmp/dir4 目录下同时这个目录会从堆栈中移除:
# popd
# pwd
/tmp/dir4

[注意:执行上面的命令后,目录堆栈中的内容为:
/tmp/dir3
/tmp/dir2
/tmp/dir1]


# popd
# pwd
/tmp/dir3

[注意:执行上面的命令后,目录堆栈中的内容为:
/tmp/dir2
/tmp/dir1]


# popd

# pwd
/tmp/dir2

[注意:执行上面的命令后,目录堆栈中的内容为:
/tmp/dir1]

# popd
# pwd
/tmp/dir1

[注意:执行上面的命令后,目录堆栈中的内容为空]

# popd
-bash: popd: directory stack empty

No comments:

Post a Comment