linux shell之pushd、popd、dirs

1 問題

我們有時(shí)候需要保存多個(gè)路徑,上下鍵切換不方便,用cd-只能到上個(gè)目錄,我們可以用dirs和pushd和popd

 
2 dirs、pushd、popd

dirs: 這個(gè)命令顯示棧里面所有的路徑,一定會(huì)包含當(dāng)前路徑,常用參數(shù)如下

dirs -v 顯示棧里面的所有路徑和下標(biāo),通過下標(biāo),我們可以用pushd +下標(biāo)到這個(gè)目錄,然后popd+下標(biāo)把這個(gè)路徑在棧里面彈出來,

dirs -c 清除棧里所有路徑,但是當(dāng)前路徑不會(huì)刪除

pushd:我們可以添加目錄到棧(dirs)里面,比如添加當(dāng)前目錄pushd .  然后如果需要到棧里面具體哪個(gè)路徑的話我們可以pushd +下標(biāo),如果是-下標(biāo)的話,我們是從棧底算起

popd:我們可以彈出棧的最上面的一個(gè)路徑,我們也可以popd +n彈出棧里面指定的具體路徑,如果是-下標(biāo)的話,我們是從棧底算起


 
3 使用過程

比如我們?cè)诋?dāng)前目錄下新建立4個(gè)文件夾dir1、dir2、dir3、dir4

我們cd到dir1里面去,然后把當(dāng)前路徑再添加進(jìn)去pushd .

我們cd到dir2里面去,然后把當(dāng)前路徑再添加進(jìn)去pushd .

我們cd到dir3里面去,然后把當(dāng)前路徑再添加進(jìn)去pushd .

我們cd到dir4里面去,然后把當(dāng)前路徑再添加進(jìn)去pushd .

我們?cè)俨榭磀irs -v

     0  ~/Desktop/linux/dabian/shell/cat/push/dir3
     1  ~/Desktop/linux/dabian/shell/cat/push/dir3
     2  ~/Desktop/linux/dabian/shell/cat/push/dir4
     3  ~/Desktop/linux/dabian/shell/cat/push/dir2
     4  ~/Desktop/linux/dabian/shell/cat/push/dir1

很明顯當(dāng)前目錄是dir3,比如我們現(xiàn)在要去dir2,我們直接執(zhí)行pushd +3  再執(zhí)行dirs -v看下

    0  ~/Desktop/linux/dabian/shell/cat/push/dir2
    1  ~/Desktop/linux/dabian/shell/cat/push/dir1
    2  ~/Desktop/linux/dabian/shell/cat/push/dir3
    3  ~/Desktop/linux/dabian/shell/cat/push/dir3
    4  ~/Desktop/linux/dabian/shell/cat/push/dir4

很明顯我們可以看到當(dāng)前目錄是dir2

比如我們執(zhí)行下popd,彈出最頂層的那個(gè),目錄會(huì)切換到最dir1,我們?cè)倏聪耫irs -v

     0  ~/Desktop/linux/dabian/shell/cat/push/dir1
     1  ~/Desktop/linux/dabian/shell/cat/push/dir3
     2  ~/Desktop/linux/dabian/shell/cat/push/dir3
     3  ~/Desktop/linux/dabian/shell/cat/push/dir4

然后我們刪除dir4看下,popd +4,然后我們?cè)賒irs -v看下

     0  ~/Desktop/linux/dabian/shell/cat/push/dir1
     1  ~/Desktop/linux/dabian/shell/cat/push/dir3
     2  ~/Desktop/linux/dabian/shell/cat/push/dir3

很明顯當(dāng)前目錄在dir1,我們切換到dir3里面去,pushd +2 然后dirs -v看下

     0  ~/Desktop/linux/dabian/shell/cat/push/dir3
     1  ~/Desktop/linux/dabian/shell/cat/push/dir1
     2  ~/Desktop/linux/dabian/shell/cat/push/dir3

可以看到到了dir3這個(gè)目錄了,我們?cè)偾宄械臈@锩娴穆窂絛irs -c,然后我們?cè)賒irs看下

    ~/Desktop/linux/dabian/shell/cat/push/dir3

在當(dāng)前目錄了,沒毛病。

 

 

 
作者:chen.yu
深信服三年半工作經(jīng)驗(yàn),目前就職游戲廠商,希望能和大家交流和學(xué)習(xí),
微信公眾號(hào):編程入門到禿頭 或掃描下面二維碼
零基礎(chǔ)入門進(jìn)階人工智能(鏈接)