在本文中,我们将向你展示如何使用pushd命令与popd命令浏览系统的目录树,教你这两个命令的基本用法。push与popd是允许你使用目录堆栈并在Linux和其他类似Unix的操作系统中更改当前工作目录的命令,尽管push与popd是非常强大且有用的命令,但它们却被低估并且很少使用。
目录堆栈 目录堆栈是你先前导航到的目录的列表,可以使用dirs命令查看目录堆栈的内容,使用pushd命令更改目录时,目录会添加到堆栈中,而popd命令会删除目录。 当前的工作目录始终位于目录堆栈的顶部,当前工作目录是用户当前所在的目录(文件夹),每次与命令行交互时,你都在一个目录中工作。 使用pwd命令可以找到当前所在的目录。 在文件系统中导航时,请使用Tab键自动完成目录名称,在目录名称的末尾添加斜杠是可选的。 push、popd和dirs是shell的内置函数,每个shell的行为可能略有不同,我们将介绍命令的Bash内置版本。
pushd命令基本用法 pushd命令的语法如下: pushd [OPTIONS] [DIRECTORY] 参考:pushd命令_Linux pushd命令使用详解:将目录加入命令堆叠中。 例如,要将当前目录保存到目录堆栈的顶部并更改为/var/www,应输入: ~$ pushd /var/www 成功后,上面的命令将打印目录堆栈,~是我们执行pushd命令的目录,代字号~表示主目录: /var/www ~ 首先按下将当前工作目录保存到堆栈的顶部,然后导航到给定目录,由于当前目录必须始终位于堆栈的顶部,因此更改后,新的当前目录将移至堆栈的顶部,但不会保存在堆栈中,要保存它,你必须调用它的push,如果你使用cd切换到另一个目录,则堆栈的顶部将丢失。 让我们向堆栈添加另一个目录: /var/www$ pushd /opt /opt /var/www ~ 要禁止默认更改目录,请使用-n选项,例如,要将/usr/local目录添加到堆栈但不更改到堆栈,则应输入: /opt$ pushd -n /usr/local 由于当前目录(始终位于顶部)没有更改,因此/usr/local目录从堆栈的顶部开始添加: /opt /usr/local /var/www ~ 推入式接受两个选项,+N和-N,它们允许你导航到堆栈的第N个目录,+N选项更改为堆栈列表的第N个元素,从零开始从左到右计数,当使用-N时,计数方向是从右到左。 为了更好地说明这些选项,让我们打印当前目录堆栈: /opt$ dirs -l -v 输出将显示目录堆栈的索引列表: 0 /opt 1 /usr/local 2 /var/www 3 /home/ywnz 如果要更改到/var/www目录,并将其置于堆栈顶部,则将使用以下方法之一。 从上到下(或从左到右)计数时,目录的索引为2: pushd +2 从下到上计数时,/var/www目录的索引为1: pushd -1. 当不带任何参数使用时,push将切换前两个目录,并使新的前一个成为当前目录,这与使用cd-命令时相同。
popd命令基本用法 popd命令采用以下形式: popd [OPTIONS] 参考:popd命令_Linux popd命令使用详解:用于删除目录栈中的记录。 当不带任何参数使用时,popd从堆栈中删除顶层目录,并导航到新的顶层目录。 假设我们有以下目录堆栈: /opt /usr/local /var/www /etc/nginx ~ 如果运行popd命令,它将从堆栈中删除/opt并更改为/usr/local目录: /opt$ popd 输出将显示新的目录堆栈: /usr/local /var/www /etc/nginx ~ -n选项禁止更改默认目录,并从堆栈中删除第二项: /opt$ popd -n /usr/local /etc/nginx ~ 与推送相同,popd还接受+N和-N选项,可用于删除堆栈的第N个目录: /opt$ popd +1 /usr/local ~
结论 通常,你将使用cd命令从一个目录移动到另一个目录,但是,如果你在命令行上花费大量时间,则pushd命令与popd命令将提高你的生产率和效率。
相关主题 |