在 Linux 中使用 pushd 和 popd 命令來進行高效的目錄導航
有時候,通過命令來在 Linux 文件系統導航是一件非常痛苦的事情,特別是對於一些新手。通常情況下,我們主要使用 cd(改變目錄)命令在 Linux 文件系統之間移動。
在之前的文章中,我們回顧了一個非常簡單但很有用的 Linux 上的 CLI 工具,文章叫做 bd:快速返回某級父目錄而不用冗餘地輸入 「cd ../../..」
在這個教程中,我們將討論兩個相關的命令:pushd
和 popd
,使用它們可以高效的瀏覽 Linux 目錄結構。這兩個命令在大多數 shell ,比如 bash、tcsh 中都存在。
推薦閱讀:Autojump:快速瀏覽 Linux 文件系統的一個高級 cd
命令
pushd 和 popd 命令在 Linux 系統中如何工作
pushd
和 popd
命令根據 『LIFO』(後進先出)原則工作。在這個原則之下,只有兩個操作是允許的:把一個目錄壓入棧,以及把一個目錄彈出棧。
pushd
命令會增加一個目錄到棧頂,而 popd
命令會從棧頂移除一個目錄。
為了顯示目錄棧中(或歷史)的目錄,我們可以使用下面展示的 dirs
命令:
$ dirs
或
$ dirs -v
dirs
- 顯示位於目錄棧中的目錄
pushd
命令:將一個目錄路徑添加到/放入目錄棧(歷史)中,之後,你可以瀏覽位於目錄棧(歷史)中的任意目錄。當把一個新的目錄入棧時,會列印出當前位於棧中的所有目錄。
下面這些命令會展示這個命令是如何工作的:
$ pushd /var/www/html/
$ pushd ~/Documents/
$ pushd ~/Desktop/
$ pushd /var/log/
pushd
- 添加新目錄入棧
根據上面輸出的目錄棧可知(目錄索引按倒序排列):
/var/log
是目錄棧中的第五個目錄,索引為 0~/Desktop/
是第四個,索引為 1~/Document/
是第三個,索引為 2/var/www/html
是第二個,索引為 3~
是第一個,索引為 4
另外,我們也可以使用目錄索引的形式 pushd +#
或 pushd -#
來添加目錄入棧。為了進入目錄 ~/Documents
,我們可以輸入:
$ pushd +2
pushd
-通過數字瀏覽目錄
注意,經過上一步操作以後,棧的內容便發生了改變。所以,要從上面的例子中進入目錄 /var/www/html
,我們應該使用下面的命令:
$ pushd +1
pushd
-通過數字瀏覽目錄
popd
命令-從棧頂或歷史中移除一個目錄。為了列出目錄棧中的所有目錄,只需輸入:
$ popd
為了從目錄棧中移除一個目錄,我們可以使用 popd +#
或 popd -#
命令,在這時,我們需要輸入下面的命令來移除目錄 ~/Documents
:
$ popd +1
popd
-從棧中以移除目錄
在這篇文章中,我們闡述了 pushd
和 popd
命令,使用它們可以高效的訪問目錄結構。你可以通過下面的反饋表和我們分享你關於這篇文章的想法。
作者簡介:
Aaron Kili 是 Linux 和 F.O.S.S 愛好者,將來的 Linux 系統管理員和網路開發人員,目前是 TecMint 的內容創作者,他喜歡用電腦工作,並堅信分享知識。
via: https://www.tecmint.com/pushd-and-popd-linux-filesystem-navigation/
作者:Aaron Kili 譯者:ucasFL 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive