1. 程式人生 > 實用技巧 >在 Linux 中使用 pushd 和 popd 命令來進行目錄導航

在 Linux 中使用 pushd 和 popd 命令來進行目錄導航

  看到別人寫的指令碼中有pushd 和popd 。 查資料學習了一下。

自己的總結如下:

目錄壓入棧和調到指定目錄都使用pushd。popd 用於刪除指定的目錄,當刪除棧的第一個元素時,當前目錄會變為原來棧中的第二個目錄。

pushd不加引數時,棧內的第0個目錄和第1個目錄會互換位置。

原文地址:https://linux.cn/article-8558-1.html

我們將討論兩個相關的命令:pushdpopd,使用它們可以高效的瀏覽 Linux 目錄結構。這兩個命令在大多數 shell ,比如 bash、tcsh 中都存在。

  pushdpopd命令根據 ‘LIFO’(後進先出)原則工作。在這個原則之下,只有兩個操作是允許的:把一個目錄壓入棧,以及把一個目錄彈出棧。

  pushd命令會增加一個目錄到棧頂,而popd命令會從棧頂移除一個目錄。

  為了顯示目錄棧中(或歷史)的目錄,我們可以使用下面展示的dirs命令:

  pushd命令:將一個目錄路徑新增到/放入目錄棧(歷史)中,之後,你可以瀏覽位於目錄棧(歷史)中的任意目錄。當把一個新的目錄入棧時,會打印出當前位於棧中的所有目錄。

  下面這些命令會展示這個命令是如何工作的:

  根據上面輸出的目錄棧可知(目錄索引按倒序排列):

  • /var/log是目錄棧中的第五個目錄,索引為 0
  • ~/Desktop/是第四個,索引為 1
  • ~/Document/是第三個,索引為 2
  • /var/www/html是第二個,索引為 3
  • ~
    是第一個,索引為 4

  另外,我們也可以使用目錄索引的形式pushd +#pushd -#來新增目錄入棧。為了進入目錄~/Documents,我們可以輸入:

注意,經過上一步操作以後,棧的內容便發生了改變。所以,要從上面的例子中進入目錄/var/www/html,我們應該使用下面的命令:pushd +1

  popd命令-從棧頂或歷史中移除一個目錄。為了列出目錄棧中的所有目錄,只需輸入: popd

  為了從目錄棧中移除一個目錄,我們可以使用popd +#popd -#命令,在這時,我們需要輸入下面的命令來移除目錄~/Documents:pop +1