linux popd 命令,Linux中的pushd推入和popd弹出命令

pushd和popd是允许您使用目录堆栈并在Linux和其他类似Unix的操作系统中更改当前工作目录的命令。尽管pushd和popd是非常强大和有用的命令,但它们却被低估并且很少使用。

在本教程中,我们将向您展示如何使用pushd和popd命令导航系统的目录树。

目录堆栈

目录堆栈是您先前浏览过的目录的列表。使用dirs命令可以看到目录堆栈的内容。使用pushd命令切换到目录时,目录会添加到堆栈中,而使用popd命令会删除目录。

当前工作目录始终位于目录堆栈的顶部。 当前工作目录是用户当前正在其中的目录文件夹。每次与命令行交互时,您都在一个目录中工作。

pwd命令可让您找出当前所在的目录。

在文件系统中导航时,使用Tab键自动完成目录名称。在目录名称的末尾添加斜杠是可选的。

pushd,popd和dirs是shell内置程序,在不同的shell中其行为可能略有不同。我们将介绍命令的Bash内置版本。

pushd命令

pushd命令的语法如下:pushd [OPTIONS] [DIRECTORY]

例如,要将当前目录保存到目录堆栈的顶部并更改为/var/www,您可以输入:~$ pushd /var/www

成功后,以上命令将打印目录堆栈。 ~是我们执行pushd命令的目录。代字号~表示主目录。/var/www ~

pushd首先将当前工作目录保存到堆栈的顶部,然后导航到给定目录。由于当前目录必须始终位于堆栈的顶部,因此更改后,新的当前目录将移至堆栈的顶部,但不会保存在堆栈中。要保存它,您必须从中调用pushd。如果您使用cd切换到另一个目录,则堆栈的顶部将丢失,

让我们向堆栈中添加另一个目录:/var/www$ pushd /opt/opt /var/www ~

要禁止默认更改目录,请使用-n选项。例如,要将/usr/local目录添加到堆栈中但不更改到堆栈中,请输入:/opt$ pushd -n /usr/local

由于当前目录(始终位于顶部)未更改,因此将/usr/local目录添加到堆栈顶部的第二位置:/opt /usr/local /var/www ~

pushd接受两个选项,+N和-N,可用于导航到堆栈的Nth目录。 +N选项更改为堆栈列表的Nth元素,从零开始从左到右计数。使用-N时,计数方向是从右到左。

为了更好地说明这些选项,让我们打印当前目录堆栈:/opt$ dirs -l -v

输出将显示目录堆栈的索引列表:0 /opt

1 /usr/local

2 /var/www

3 /home/myfreax

如果要更改到/var/www目录,并将其移到堆栈的顶部,将使用以下之一。

从上到下(或从左到右)计数时,目录的索引为2。pushd +2

从下到上计数时,/var/www目录的索引为1。pushd -1.

不带任何参数使用时,pushd将切换前两个目录,并使新的前一个成为当前目录。这与使用cd -命令时相同。

popd命令

popd命令采用以下形式:popd [OPTIONS]

不带参数使用时,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 ~

与pushd相同,popd也接受+N和-N选项,这些选项可用于删除堆栈的Nth目录。/opt$ popd +1/usr/local ~

结论

通常,您将使用cd命令从一个目录移动到另一个目录。但是,如果您在命令行上花费大量时间,则pushd和popd命令将提高您的生产率和效率。

如果您有任何问题或反馈,请随时发表评论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值