cd及目錄快速切換

2021-09-02 21:14:58 字數 4032 閱讀 7534

[url=及目錄快速切換[/url]

一、cd ~

切換到使用者目錄

二、cd -

cd - 返回進入當前目錄前所在目錄

三、pushd、popd、dirs

在linux的多目錄命令提示符中工作是一種痛苦的事情,但以下這些利用linux cd命令和pushd切換目錄的技巧有助於你節省時間和精力 。

用pushd實現在不同目錄間切換。

在命令列模式下,當你工作在不同目錄中,你將發現你有很多時間都浪費在重複輸入上。如果這些目錄不在同乙個根目錄中,你不得不在轉換時輸入完整的路徑名,這難免讓人有些難以忍受。但你可以用以下的乙個或兩個步驟來避免所有多餘的輸入:用命令列直譯器中的歷史記錄,或者用命令列函式pushd。

用命令列直譯器中的歷史記錄的好處是只需按很少的鍵。在命令列中用向上的箭頭來查詢你用過的命令,直到你找到,然後按回車鍵。如果你所切換的兩個目錄在整個驅動器的子目錄結構中很接近,那用直譯器中的歷史記錄可能是你最好的選擇。

然而,如果你在兩個截然不同的路徑間轉換的話,你可能很希望利用pushd這個函式,你可以用它建立乙個目錄堆疊(在記憶體中的乙個列表)。

這裡說一下怎麼用pushd。假設你現在工作在/usr/share/fonts目錄下。你需要對/usr/share/fonts做一些改動,你將頻繁的在兩個目錄間切換。開始在乙個目錄下,用pushd函式切換到另乙個目錄。在我們的例子中,開始在/usr/share/fonts下,你鍵入pushd/opt/wonderword/fonts,然後按回車鍵。現在,你將在下一行看到堆疊中的內容:/opt/wonderword/fonts /usr/share/fonts。

正如你所看到的,當你鍵入pushd和乙個路徑名時,將自動產生乙個堆疊,內容是你鍵入的目錄名和你當前工作的目錄名。在我們的例子中,你所鍵入的路徑(/opt/wonderword/fonts)在堆疊的頂部。

快速返回上一級目錄,你可以直接鍵入pushd,如果不跟路徑名,你將返回到堆疊中前乙個目錄的上一層目錄。

如果你需要從堆疊中刪除乙個目錄,鍵入popd,然後是目錄名稱,再按回車鍵。想檢視堆疊中目錄列表,鍵入dirs,然後按回車鍵。popd和dirs命令也是常用函式中的一部分。

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

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

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

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

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

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

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

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

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

pushd,popd是我們的好幫手

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

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

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

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

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

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

看例子:

# cd -

/root

# cd -

#怎麼樣?在兩個目錄之間切換非常方便,無需再輸入很長的路徑

說明:為何cd -能夠回到前乙個目錄?

這是因為 -在此處等同於 $oldpwd變數,

此問題可以參見bash的info資訊,

cd 一項有相關的說明: an argument of - is equivalent to $oldpwd.

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

也就是說:$oldpwd和-相等

下面我們再看乙個例子:

# echo $oldpwd;

/root

# cd $oldpwd

# echo $oldpwd;

# cd $oldpwd;

# echo $oldpwd;

/root

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

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

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

我們需要使用 pushd

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

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

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

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

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

看例子:

# pushd /usr/local/sbin/

/usr/local/sbin ~

# dirs

/usr/local/sbin ~

# dirs -p -v

0 /usr/local/sbin

1 ~# dirs -p -v

1 /usr/local/sbin

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

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

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

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

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

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

# pushd /boot/grub/

# dirs -v

0 /boot/grub

2 /usr/local/sbin

3 ~# pushd

# dirs -v

1 /boot/grub

2 /usr/local/sbin

3 ~# pushd

# dirs -v

0 /boot/grub

2 /usr/local/sbin

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

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

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

用 pushd +n即可

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

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

看例子:

# dirs -v

0 /boot/grub

2 /usr/local/sbin

3 ~# pushd +2

# dirs -v

0 /usr/local/sbin

1 ~2 /boot/grub

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

用popd即可

看例子:

# dirs -v

0 /usr/local/sbin

1 ~2 /boot/grub

# popd

# dirs -v

0 ~1 /boot/grub

# popd +1

# dirs -v

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

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

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

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

四,多學一點知識

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

用 -n引數即可

看例子:

# dirs -v

0 ~# pushd -n /boot/grub

# dirs -v

0 ~1 /boot/grub

2, dirs可以清空目錄堆疊

用 -c引數即可

看例子:

# dirs -v

0 ~1 /boot/grub

# dirs -c

# dirs -v

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

cd及目錄快速切換

切換到使用者目錄 cd 返回進入當前目錄前所在目錄 在linux的多目錄命令 提示符中工作是一種痛苦的事情,但以下這些利用linux cd命令 和pushd切換目錄的技巧有助於你節省時間和精力 用pushd實現在不同目錄間切換。在命令列模式下,當你工作在不同目錄中,你將發現你有很多時間都浪費在重複輸...

cd及目錄快速切換

切換到使用者目錄 cd 返回進入當前目錄前所在目錄 在linux的多目錄命令提示符中工作是一種痛苦的事情,但以下這些利用linux cd命令 和pushd切換目錄的技巧有助於你節省時間和精力 用pushd實現在不同目錄間切換。在命令列模式下,當你工作在不同目錄中,你將發現你有很多時間都浪費在重複輸入...

cd切換目錄

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