Linux 中的 pushd 命令示例
pushd 是一个 shell 内置命令,它允许我们轻松操作目录堆栈。这会将目录附加到目录堆栈的顶部,或旋转堆栈,使堆栈的新顶部成为当前的工作目录。 pushd 中的“d”代表目录,因为它将目录路径推送到堆栈上。每次 pushd 命令后,目录堆栈的大小都会增加。此堆栈基于后进先出 (LIFO) 原则。此命令的退出状态为 0,即,除非提供无效参数或目录更改失败,否则它返回成功。
pushd 命令的语法:
pushd [directory]
pushd 命令如何发挥作用?
- 当执行 pushd [directory] 命令时,指定的目录成为当前的工作目录。
- 目录的路径和名称被添加到目录堆栈的顶部。
- 目录堆栈显示为以空格分隔的目录列表。
- 如果 pushd 命令不带任何目录名执行,则栈顶的目录成为当前工作目录,即前两个目录交换它们在目录栈中的位置。
pushd 命令优于 cd 命令的优势
它是一个非常强大的目录操作工具,因为它将目录存储在堆栈中。考虑嵌套目录。我们可以使用 cd 命令在字典之间导航。但是假设您在第四个目录中。然后要导航到第二个目录,必须使用cd 命令两次。但是使用pushd命令,可以一步到位。在一个步骤中,我们可以从堆栈中的任何目录导航到堆栈中的另一个目录。目录操作变得更容易和高效。
使用 pushd 命令
1. 使用 pushd 命令添加目录:
pushd 命令将目录推入堆栈。执行以下命令:
pushd ~/Desktop
现在,桌面成为当前的工作目录并被推入堆栈并显示目录列表。将对下面的其他命令执行相同的操作。
pushd ~/Templates
pushd ~/Videos
pushd ~/Downloads
pushd ~/Music
pushd ~/Downloads
可以观察到,在每次 pushd 命令之后,指定的目录都会成为新目录。可以看出,“下载”已两次添加到目录堆栈中,但没有错误,因为目录堆栈允许重复目录。可以使用以下命令显示目录堆栈。可以观察到,开头输入的命令显示在最后位置,最近添加的目录显示在顶部。
dir -v -l
2. 添加目录而不改变当前目录:
每当一个新目录添加到堆栈中时,当前目录就会更改为新目录。但是可以使用“-n”和 pushd 命令添加一个新目录,保持当前目录不变。此命令会将目录推送到第二个位置,并且当前目录在旋转的第一个位置保持不变。命令的语法是:
pushd -n [Directory]
3. 移动到堆栈中任意位置的目录:
我们可以使用数字参数和 pushd 命令来移动到堆栈中存在的任何目录。这里的数字参数表示目录在堆栈中的位置。该位置的目录成为当前目录并轮换堆栈。 pushd +n 从目录堆栈的顶部开始计数 n。 pushd -n 从目录堆栈的底部开始计数 n。
pushd +N #N is a numeric parameter
pushd -N #N is a numeric parameter