dirs\pushd\popd命令用法

Bourne Again和TC Shell都允許用戶將其正在使用的目錄列表存放起來,這樣就可以在這些目錄之間輕易移動。這個目錄列表稱爲棧。它模擬了餐廳所用的盤子:一般將盤子放到棧的頂部或者從棧的頂部取盤子,這就創建了一個先入後出(FILO)的棧。

1. dirs:顯示棧

內置命令dirs顯示目錄棧的內容。如果當目錄棧是空的時候調用dirs,它將顯示工作目錄的名字。

 

$ dirs
~/literature

 

內置命令dirs使用代字符~表示用戶主目錄的名字。下面幾節中的示例均假設用戶使用圖8-2中給出的目錄結構。

 

 

 
圖8-2  示例所使用的目錄結構

 

2. pushd:將目錄壓入棧中

使用內置命令pushd(push directory,將目錄推到棧頂)可以改變目錄,同時添加一個新的目錄到棧頂。除改變目錄之外,內置命令pushd還將顯示棧的內容。圖8-3闡明瞭下面的示例。

 

    $ pushd ../demo
~/demo ~/literature
$ pwd
/home/sam/demo
$ pushd ../names
~/names ~/demo ~/literature
$ pwd
/home/sam/names

 

 

 
圖8-3  創建目錄棧

 

當不帶參數使用pushd時,pushd交換棧頂最上面的兩個目錄,並將新的棧頂目錄(即原來的次棧頂目錄)作爲新的工作目錄(如圖8-4所示):

 

$ pushd
~/demo ~/names ~/literature
$ pwd
/home/sam/demo    

 

 

 
圖8-4  使用pushd改變工作目錄

 

這樣使用pushd,就可以輕易地在兩個目錄之間來回移動。不管是否顯式地創建目錄棧,都可以使用cd– 切換到前一個目錄。爲了訪問目錄棧中的其他目錄,可以在調用pushd時,帶上一個以加號開頭的數字作爲參數。棧中目錄的編號從棧頂開始算起,棧頂目錄的編號是0。下面的pushd命令繼續前一個示例,將工作目錄改變到literature,並將literature移動到棧頂。

 

$ pushd +2                
~/literature ~/demo ~/names
$ pwd
/home/sam/literature

 

3. popd:將目錄從棧中彈出

使用內置命令popd(pop directory,彈出目錄)可將目錄從棧中移出。不帶參數的popd將棧頂目錄從棧中移出,並將工作目錄改變到這個新的棧頂目錄。下面的示例和圖8-5給出了這種情況。

 

$ dirs
~/literature ~/demo ~/names
$ popd
~/demo ~/names
$ pwd
/home/sam/demo

 

 

 

 
圖8-5  使用popd命令將目錄從棧中移出

 

爲了移出除棧頂之外的其他目錄,可以使用一個以加號開頭的數字作爲參數傳遞給popd。下面的示例將目錄編號1(即demo)移出:

 

$ dirs
~/literature ~/demo ~/names
$ popd +1
~/literature ~/names   

 

移出標號不爲0的目錄並不會改變工作目錄。

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