pushd popd切換目錄

2021-07-03 03:26:17 字數 3230 閱讀 1190

讓切換目錄更方便: pushd,popd,dirs,cd -

一,為何要使用這幾個命令?

可能大家會有疑問,為何要使用這幾個命令,

難道用cd不就可以切換目錄了嗎?

沒錯,使用cd就可以切換到需要訪問的目錄,

但是有時會是乙個路徑很長,層次很多的目錄,進到此目錄下後,這時我們不小心執行了 cd命令,

理所當然,我們回到了自己的home目錄,這時如果想回去怎麼辦?

還有:因為工作的需要,我們需要不停在幾個很深層的目錄之間切換,不止乙個,

那麼即使有tab鍵幫忙,我們也會因為乙個cd命令花費很多時間,如何在多個目錄之間切換時能更方便些

pushd,popd是我們的好幫手

說明:  pushd,popd,dirs這幾個我們講到的命令是bash內建的命令,

所以只要登入到了bash,這幾個命令就可以使用了

二,如何在兩個目錄之間切換?

如果只是在兩個目錄之間切換,那麼還不必使用pushd,

這時只需使用 cd -就可以了

cd -的作用是可以回到前乙個目錄,

看例子:

/root

[root@localhost ~]# cd -

$oldpwd變數就是bash所記錄的前乙個目錄

也就是說:$oldpwd和-相等

我們可以得到結構:  用cd -和cd $oldpwd都可以在最近所操作的兩個目錄之間進行切換

三,如何在多個目錄之間切換?

因為 cd -和 cd $oldpwd都是只支援最近操作的兩個目錄,所以要在多個目錄之間操作時,

我們需要使用 pushd

1, 先來介紹我們會用到的3條命令

pushd:切換到作為引數的目錄,並把原目錄和當前目錄壓入到乙個虛擬的堆疊中

如果不指定引數,則會回到前乙個目錄,並把堆疊中最近的兩個目錄作交換

popd: 彈出堆疊中最近的目錄

dirs: 列出當前堆疊中儲存的目錄列表

看例子:

[root@localhost ~]# pushd /usr/local/sbin/

/usr/local/sbin ~

[root@localhost sbin]# dirs

/usr/local/sbin ~

[root@localhost sbin]# dirs -p -v

0  /usr/local/sbin

1  ~

1  /usr/local/sbin

2  ~

說明: dirs的 -p引數可以每行乙個目錄的形式顯示堆疊中的目錄列表

-v引數可以在目錄前加上編號

注意:有 -v時,不新增 -p也可以每行乙個目錄的形式顯示

說明之二:我們可以看到:最近壓入堆疊的目錄位於最上面

2,如何在最近的兩個目錄之間切換?

在最近的兩個目錄之間切換:用pushd不加引數即可

[root@localhost kget]# pushd /boot/grub/

[root@localhost grub]# dirs -v

0  /boot/grub

2  /usr/local/sbin

3  ~

[root@localhost grub]# pushd

[root@localhost kget]# dirs -v

1  /boot/grub

2  /usr/local/sbin

3  ~

[root@localhost kget]# pushd

[root@localhost grub]# dirs -v

0  /boot/grub

2  /usr/local/sbin

3  ~

說明:可以看到,用pushd不加引數在最近的兩個目錄之間切換時,

當前目錄總是位於堆疊的最上面

3,如何在多個目錄之間切換?

用 pushd +n即可

說明:n是乙個數字,有此引數時,是切換到堆疊中的第n個目錄,並把此目錄以堆疊迴圈的方式推到堆疊的頂部

需要注意: 堆疊從第0個開始數起

看例子:

[root@localhost grub]# dirs -v

0  /boot/grub

2  /usr/local/sbin

3  ~

[root@localhost grub]# pushd +2

[root@localhost sbin]# dirs -v

0  /usr/local/sbin

1  ~

2  /boot/grub

4,如何把目錄從堆疊中刪除?

用popd即可

看例子:

[root@localhost sbin]# dirs -v

0  /usr/local/sbin

1  ~

2  /boot/grub

[root@localhost sbin]# popd

[root@localhost ~]# dirs -v

0  ~

1  /boot/grub

[root@localhost ~]# popd +1

[root@localhost ~]# dirs -v

0  ~

說明:可以看到popd不加引數的運**況:

popd把堆疊頂端的目錄從堆疊中刪除,並切換於位於新的頂端的目錄

說明之二: popd 加有引數 +n時,

n是堆疊中的第n個目錄,表示把堆疊中第n個目錄從堆疊中刪除

四,多學一點知識

1,pushd和popd都可以只影響堆疊而不切換目錄

用 -n引數即可

看例子:

[root@localhost ~]# dirs -v

0  ~

[root@localhost ~]# pushd -n /boot/grub

[root@localhost ~]# dirs -v

0  ~

1  /boot/grub

2, dirs可以清空目錄堆疊

用 -c引數即可

看例子:

[root@localhost ~]# dirs -v

0  ~

1  /boot/grub

[root@localhost ~]# dirs -c

[root@localhost ~]# dirs -v

0  ~

說明:  位於堆疊頂部的目錄是當前目錄,它不能被pop出去的

**:

高效切換目錄的方式 pushd popd

平時工作中經常切換 目錄,最常用的就是cd了。但是用cd切換的話,很大的問題就是如果來回切換的目錄大於兩個的話,就需要不斷的敲 cd.這樣子,手都快敲斷了 最近了解乙個命令,可以輕鬆的來回切換目錄。pushd popd 通常,cd 能夠切換 兩個目錄,例如 如上可以看出來,實際上 cd 其中的 應該...

linux目錄切換

這兩天回看了一下自己的部落格內容.雖然目前沒有多少,但是也體現出了一些問題.最初的文章前面都有一句,專案需要.最初的內容都是東拼西湊.終於系統的接觸一些內容的時候發現.書籍仍然是學習知識最重要的途徑.可能同乙個經驗豐富的前輩共事也會學到很多.但是這樣的學習畢竟是不系統的.缺乏連續性.今天要談的內容,...

cd切換目錄

cd的基本語法是 cd 選項 引數 選項 p,如果目錄是符號鏈結,則進入實際的目錄 l,如果目錄是符號鏈結,則進行鏈結目錄 單獨的 選項,進入到呼叫cd命令時的上一次的工作目錄,即oldpwd所代表的目錄。預設情況下,cd可以不有任何選項,此時將進入到使用者主目錄,即 home所代表的目錄。引數 指...