您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

popd

概要

shell
popd [-n] [+N | -N]

主要用途

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

  • 没有参数时,删除目录堆栈顶部。

    选项

    shell
    -n    抑制删除目录引起的当前工作目录变化。
    

    参数

    +N(可选):不带参数执行dirs命令显示的列表中,左起的第N个目录将被删除。(从0开始计数)

    -N(可选):不带参数执行dirs命令显示的列表中,右起的第N个目录将被删除。(从0开始计数)

    返回值

    返回成功除非提供了非法选项或执行出现错误。

    例子

    shell
    <h1>添加目录到堆栈,当前工作目录不变。</h1>
    [user2@pc ~]$ dirs
    ~
    [user2@pc ~]$ pushd -n ~/Desktop
    ~ ~/Desktop
    [user2@pc ~]$ pushd -n ~/Pictures
    ~ ~/Pictures ~/Desktop
    [user2@pc ~]$ pushd -n ~/bin
    ~ ~/bin ~/Pictures ~/Desktop
    
    <h1>从目录堆栈中删除目录,删除顶部目录时会改变当前工作目录:</h1>
    [user2@pc ~]$ popd -2
    ~ ~/Pictures ~/Desktop
    [user2@pc ~]$ popd +1
    ~ ~/Desktop
    [user2@pc ~]$ popd
    ~/Desktop
    [user2@pc Desktop]$
    
    shell
    <h1>从目录堆栈中删除目录,删除顶部目录时不会改变当前工作目录:</h1>
    [user2@pc ~]$ dirs
    ~
    [user2@pc ~]$ pushd -n ~/Desktop
    ~ ~/Desktop
    [user2@pc ~]$ popd -n
    ~
    [user2@pc ~]$ 
    

    注意

  1. bash的目录堆栈命令包括dirs popd pushd

  1. 当前目录始终是目录堆栈的顶部。

  1. 该命令是bash内建命令,相关的帮助信息请查看help命令。

    参考链接

    • [popd、pushd命令'-n'选项的行为](https://superuser.com/questions/784450/popd-and-pushd-behavior-with-n-option)