linux shell pushd popd dirs命令__linux

來源:互聯網
上載者:User

http://www.cnblogs.com/davidwang456/p/3784102.html

http://blog.csdn.net/yucan1001/article/details/8455757

http://blog.163.com/yangfan876@126/blog/static/806124562013720104712282/


1、dirs

1)功能
顯示目前的目錄棧中的所有記錄(不帶參數的dirs命令顯示目前的目錄棧中的記錄)

2)文法
(1)格式:dirs  [-clpv]  [+n]  [-n]
(2)選項
-c    刪除目錄棧中的所有記錄
-l     以完整格式顯示
-p    一個目錄一行的方式顯示
-v    每行一個目錄來顯示目錄棧的內容,每個目錄前加上的編號
+N  顯示從左至右的第n個目錄,數字從0開始
-N   顯示從右至左的第n個日錄,數字從0開始
注意:dirs始終顯示當然目錄, 再是堆棧中的內容;即使目錄堆棧為空白, dirs命令仍然只顯示當然目錄

2、pushd

1)功能
pushd命令常用於將目錄加入到棧中,加入記錄到目錄棧頂部,並切換到該目錄;若pushd命令不加任何參數,則會將位於記錄棧最上面的2個目錄對換位置

2)文法
(1)格式:pushd  [目錄 | -N | +N]   [-n]
(2)選項
目錄   將該目錄加入到棧頂,並執行"cd 目錄",切換到該目錄
+N   將第N個目錄移至棧頂(從左邊數起,數字從0開始)
-N    將第N個目錄移至棧頂(從右邊數起,數字從0開始)
-n    將目錄入棧時,不切換目錄

3、popd

1)功能
popd用於刪除目錄棧中的記錄;如果popd命令不加任何參數,則會先刪除目錄棧最上面的記錄,然後切換到刪除過後的目錄棧中的最上面的目錄

2)文法
(1)格式:popd  [-N | +N]   [-n]
(2)選項
+N   將第N個目錄刪除(從左邊數起,數字從0開始)
-N    將第N個目錄刪除(從右邊數起,數字從0開始)
-n    將目錄出棧時,不切換目錄


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的目錄並不會改變工作目錄。


話說shell中還有這樣的命令,以前還真麼有用過....pushd和popd。首先這兩個命令是shell內建命令,pushd作用是建立一個目錄棧,並將指定的目錄加入棧頂,對應的popd就是彈出棧頂目錄。pushd有幾個參數,+n (加n)-n(減n)這個是將棧旋轉,n是數字,也就是說將整個目錄棧旋轉幾個數字....貌似描述的不明確,看看下面的例子:

[yangfan@dhcp-13-42 /]$ pushd /home/yangfan/test~/test / ~ ~/kernel /home[yangfan@dhcp-13-42 test]$ pushd -2~ ~/kernel /home ~/test /[yangfan@dhcp-13-42 ~]$ pushd +2/home ~/test / ~ ~/kernel

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.