目錄操作高手是如何煉成:dirs & pushd & popd

前言

Linux系統中,我們在目錄之間切換一般使用cd命令,cd雖然可在目錄之間來回切換,但是cd的效率太低,進入之後退出需要反覆輸入路徑;那有沒有一種高效簡單的目錄操作命令?
答案是肯定的,那就是:pushd & popd

命令簡述

  • dirs:顯示當前所在目錄以及目錄棧的內容
  • pushd(push dir): 將目錄壓入目錄棧
  • popd(pop dir): 將目錄彈出目錄棧

目錄棧遵循先進後出原則

dirs使用

dirs命令顯示當前所在目錄及目錄棧中的內容。即使目錄棧爲空,dirs也會顯示當前所在的目錄

code sample:


# popd
-bash: popd: directory stack empty
# dirs
~
# pwd
/home/ramesh

pushd使用

先創建一些臨時的目錄然後把他們壓入目錄堆棧中去,執行pushd的同時也會跳轉到對應的目錄

code sample:


# mkdir /tmp/dir1
# mkdir /tmp/dir2
# mkdir /tmp/dir3
# mkdir /tmp/dir4

# cd /tmp/dir1
# pushd .
# cd /tmp/dir2
# pushd .
# cd /tmp/dir3
# pushd .
# cd /tmp/dir4
# pushd .

# dirs
/tmp/dir4 /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1

dirs顯示的第一個目錄名總會是當前所在的目錄,而不是顯式壓入堆棧裏的內容
當前目錄棧的內容如下:

/tmp/dir4
/tmp/dir3
/tmp/dir2
/tmp/dir1

popd使用

最後被壓入的目錄會在堆棧的頂端。當你執行“popd”,系統就會跳轉到棧頂的目錄中,並且從堆棧中把它清除掉。正如上面所展示的,最後壓入堆棧的是/tmp/dir4,所以當進行一次popd時,就會跳轉到/tmp/dir4目錄下同時從堆棧中將它移除

code sample:


# popd
# pwd
/tmp/dir4
[:執行完上popd命令之後,目錄棧包括以下目錄
/tmp/dir3
/tmp/dir2
/tmp/dir1]
# popd
# pwd
/tmp/dir3
[:執行完上popd命令之後,目錄棧包括以下目錄
/tmp/dir2
/tmp/dir1]
# popd
# pwd
/tmp/dir2
[:執行完上popd命令之後,目錄棧包括以下目錄 /tmp/dir1]
# popd
# pwd
/tmp/dir1
[:執行完上popd命令之後,目錄棧包括以下目錄]
# popd
-bash: popd: directory stack empty

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章