订阅本站
收藏本站
微博分享
QQ空间分享

在Linux系统中的Pushd命令与Popd命令,教你这两个命令的基本用法

lilin 分类:Linux命令 时间:2019/11/29 18:07:32 评论: 加入收藏

在本文中,我们将向你展示如何使用pushd命令与popd命令浏览系统的目录树,教你这两个命令的基本用法。push与popd是允许你使用目录堆栈并在Linux和其他类似Unix的操作系统中更改当前工作目录的命令,尽管push与popd是非常强大且有用的命令,但它们却被低估并且很少使用。

在Linux系统中的Pushd<a href=http://8u.hn.cn/ssh/ target=_blank class=infotextkey>命令</a>与Popd<a href=http://8u.hn.cn/ssh/ target=_blank class=infotextkey>命令</a>,教你这两个<a href=http://8u.hn.cn/ssh/ target=_blank class=infotextkey>命令</a>的基本用法

 

目录堆栈

目录堆栈是你先前导航到的目录的列表,可以使用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命令将提高你的生产率和效率。

 

TAG:

文章评论

留言与评论(共有 0 条评论)
   
验证码: