安卓系统

Linux中的Push和Popd命令

Understand OS series | Part 1 | Operating system overview | SystemAC

Understand OS series | Part 1 | Operating system overview | SystemAC

目录:

Anonim

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

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

目录堆栈

目录堆栈是您先前导航到的目录的列表。 可以使用 dirs 命令查看目录堆栈的内容。 使用 pushd 命令更改目录时,目录会添加到堆栈中,而 popd 命令会删除目录。

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

使用 pwd 命令可以找到当前所在的目录。

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

pushd popd dirs 是shell内置的,它们的行为可能因shell的不同而略有不同。 我们将介绍命令的Bash内置版本。

pushd 命令

pushd 命令的语法如下:

pushd

例如,要将当前目录保存到目录堆栈的顶部并更改为 /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/linuxize

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

pushd +2

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

pushd -1.

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

popd 命令

popd 命令采用以下形式:

popd

当不带任何参数使用时, popd 从堆栈中删除顶层目录,并导航到新的顶层目录。

假设我们有以下目录堆栈:

/opt /usr/local /var/www /etc/nginx ~

/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 命令将提高您的生产率和效率。

bash终端