# popd - 从目录堆栈中删除目录

popd指令用来从shell目录堆栈中删除记录,如果没有选项,那么先删除栈顶记录,然后将当前目录切换到新的栈顶目录中。

# 主要用途

  • 从目录堆栈中删除目录,如果是顶部目录被删除,那么当前工作目录会切换到新的顶部目录。
  • 没有参数时,删除目录堆栈顶部。

# 适用范围

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

# 语法

popd  [-n]  [+num]  [-num]

在没有参数的情况下,从堆栈中移除顶层目录,并对新的顶层目录执行CD。如果popd命令成功,也会执行dir,返回状态为0。如果遇到无效选项、目录堆栈为空、指定不存在的目录堆栈条目或目录更改失败,则popd返回false。

# 选项

+num       # 将从左起第num个目录删除,从0开始计数
-num       # 将从右起第num个目录删除,从0开始计数
-n         # 在从堆栈中删除目录时,取消目录的正常更改,以便只操作堆栈。

# 举例

删除最右面的目录

[root@localhost doc]$ dirs.           #查看目录
/home/sogrey/app/doc
[root@localhost doc]$ popd -0         #删除最右面的,成功
/home/sogrey/app

删除最左面的目录

[root@localhost doc]$ dirs.           #查看目录
/home/sogrey/app/doc
[root@localhost doc]$ popd +0        #删除最左面的,成功
/sogrey/app/doc