# pushd - 将目录添加到目录堆栈顶部

pushd指令用来将目录加入堆栈的顶部,并且切换到该目录。如果没有任何参数,那么将栈最上面的两个记录切换位置。

# 主要用途

  • 将目录添加到目录堆栈顶部,切换当前工作目录到该目录。
  • 旋转目录堆栈,使堆栈的新顶部成为当前工作目录。
  • 没有参数时,交换目录堆栈的前两个目录。

# 适用范围

RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux

# 语法

pushd  [-n]  [+num]  [-num]
pushd  [-n]  [dir]

如果没有参数,则交换前两个目录并返回0,除非目录堆栈为空。如果pusd命令成功,那么还会执行dir。如果使用第一种形式,除非cd到dir失败,否则pushd返回0。对于第二种表单,除非目录堆栈为空,指定了一个不存在的目录堆栈元素,或者将目录更改为指定的新的当前目录,否则PUSD返回0。

# 选项

+num          # 将从左起第num个目录移动到栈顶,从0开始计数
-num          # 将从右起第num个目录移动到栈顶,从0开始计数
-n            # 添加记录的时候,不切换目录
dir           # 将dir添加到顶部的目录堆栈,使其成为新的当前工作目录。

# 举例

不使用任何参数

[root@localhost dev]$ dirs.          #查看目录
/dev/so/sogrey
You have new mail in /var/spool/mail/root
[root@localhost dev]$ pushd          #直接调用pushd,栈顶的两个目录位置切换
/so/dev/sogrey

删除最左面的目录

[root@localhost wj]$ pushd /etc       #增加目录
/etc/so/dev/sogrey
[root@localhost etc]$                   #位置已经切换

移动目录的位置

[root@localhost wj]$ dirs.               #查看目录
/etc/so/dev/sogrey
[root@localhost etc]$ pushd -0            #将最右面的移动到栈顶
/sogrey/etc/so/dev
[root@localhost sogrey]$                #成功移动,并且切换位置