Linux下如何高效切換目錄

本篇內(nèi)容介紹了“Linux下如何高效切換目錄”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)公司是專業(yè)的烏拉特前網(wǎng)站建設公司,烏拉特前接單;提供成都網(wǎng)站設計、網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行烏拉特前網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

Linux 下對于目錄的切換,大家肯定會想到一個命令:cd 命令。這個是 Linux  下再基本不過的命令。

cd 命令確實很方便,但如果需要頻繁在下面的目錄切換,你可能要懷疑人生了:

/home/alvin/projects/blogdemos/linux-system-programming/thread /home/alvin/projects/blogdemos/diff /home/harry/study/日本文化/中日交流/影視業(yè)/動作片

如果只會 cd 命令的話,那么就需要不停地 cd ,直到你發(fā)瘋。

在這種情況下,我們?nèi)绾胃咝нM行目錄切換呢?良許給大家介紹三個命令:pushd 、 popd 、 dirs 。

這三個命令其實都是對 目錄棧 進行操作,而 目錄棧 就是一個保存目錄的棧結(jié)構(gòu),該棧結(jié)構(gòu)的頂端永遠都存放著當前目錄(敲黑板了,重點!!)。

有編程基礎的同學都知道,棧 都是遵循著 后進先出 的原則。也就是說,在棧結(jié)構(gòu)里,后面進棧的元素,將先出棧。

復習完基本概念,我們再來詳細這三個命令。

顯示目錄棧內(nèi)容:dirs

首先是 dirs 。這個命令很簡單,就是顯示目錄棧的內(nèi)容。它有以下三個常用選項:

選項含義-p每行顯示一條記錄-v每行顯示一條記錄,同時展示該記錄在棧中的index-c清空目錄棧

其中,-p 與 -v 選項的區(qū)別是,-v 選項將顯示每條記錄在棧中的索引,除此之外完全一樣。假如現(xiàn)在有一個目錄棧,我們來看看它里面有啥內(nèi)容:

[alvin@VM_0_16_centos dir2]$ pwd /home/alvin/test/dir2 [alvin@VM_0_16_centos dir2]$ dirs -v  0  ~/test/dir2  1  ~/test/dir1  2  ~/test/dir3  3  ~/test

請注意,最頂部的元素永遠跟當前目錄一致,如果你在其它目錄下查看目錄棧,第一個元素將對應發(fā)生改變。同理,如果你用后文介紹的 pushd 和 popd  來操作目錄棧的話,當前目錄將切換到目錄棧的第一個元素對應地址。

如果我們要清空目錄棧,直接使用 -c 選項即可。

[alvin@VM_0_16_centos diff]$ dirs -c [alvin@VM_0_16_centos diff]$ dirs -v  0  ~/projects/blogdemos/diff

壓入目錄棧:pushd

每次 pushd 命令執(zhí)行完成之后,默認都會執(zhí)行一個 dirs 命令來顯示目錄棧的內(nèi)容。pushd 的用法主要有如下幾種:

(1) pushd + 目錄

pushd 后面如果直接跟目錄使用,會切換到該目錄并且將該目錄置于目錄棧的棧頂。例子:

[alvin@VM_0_16_centos test]$ pushd dir1 ~/test/dir1 ~/test [alvin@VM_0_16_centos dir1]$ pushd ../dir2 ~/test/dir2 ~/test/dir1 ~/test [alvin@VM_0_16_centos dir2]$ pushd ../dir3 ~/test/dir3 ~/test/dir2 ~/test/dir1 ~/test [alvin@VM_0_16_centos dir3]$ dirs -v  0  ~/test/dir3  1  ~/test/dir2  2  ~/test/dir1  3  ~/test

(2) pushd (不帶任何參數(shù))

pushd  不帶任何參數(shù)執(zhí)行的效果就是,將目錄棧最頂層的兩個目錄進行交換。前面我們已經(jīng)強調(diào)過,目錄棧第一個元素與當前目錄是相關(guān)的,所以第一個元素發(fā)生改變時,當前目錄將對應切換,反之亦然。

[alvin@VM_0_16_centos dir3]$ dirs -v  0  ~/test/dir3  1  ~/test/dir2  2  ~/test/dir1  3  ~/test [alvin@VM_0_16_centos dir3]$ pwd /home/alvin/test/dir3 [alvin@VM_0_16_centos dir3]$ pushd ~/test/dir2 ~/test/dir3 ~/test/dir1 ~/test [alvin@VM_0_16_centos dir2]$ pwd /home/alvin/test/dir2    #對應目錄發(fā)生改變 [alvin@VM_0_16_centos dir2]$ dirs -v  0  ~/test/dir2  1  ~/test/dir3        #索引 0 和 1 的內(nèi)容對調(diào)  2  ~/test/dir1  3  ~/test

(3) pushd +/-n

pushd +/-n  就是直接切換到對應索引值的目錄。注意,這里既可以用加號,也可以用減號。如果是加號的話,將從目錄棧由上往下數(shù),而用減號的話,將從目錄棧由下往上數(shù)。

接下來就回到了我們本文開頭的問題,如果我們要在兩個或多個路徑很長的目錄之間頻繁切換,該如何操作?

  • 首先,我們用 pushd + 目錄 的方式將這幾個路徑添加到目錄棧中;

  • 然后,再用 pushd +/-n 在不同的目錄間快速切換。具體演示如下:

  • [alvin@VM_0_16_centos dir2]$ pwd /home/alvin/test/dir2 [alvin@VM_0_16_centos dir2]$ dirs -v  0  ~/test/dir2  1  ~/test/dir3  2  ~/test/dir1  3  ~/test [alvin@VM_0_16_centos dir2]$ pushd +2 ~/test/dir1 ~/test ~/test/dir2 ~/test/dir3 [alvin@VM_0_16_centos dir1]$ pwd /home/alvin/test/dir1 [alvin@VM_0_16_centos dir1]$ dirs -v  0  ~/test/dir1  1  ~/test  2  ~/test/dir2  3  ~/test/dir3

彈出目錄棧:popd

每次 popd 命令執(zhí)行完成之后,默認都會執(zhí)行一個 dirs 命令來顯示目錄棧的內(nèi)容。popd 的用法主要有如下幾種:

(1) popd (不帶任何參數(shù))

popd不帶任何參數(shù)執(zhí)行的效果,就是將目錄棧中的棧頂元素出棧。這時,棧頂元素發(fā)生變化,自然當前目錄也會發(fā)生相應的切換。

[alvin@VM_0_16_centos dir3]$ dirs -v  0  ~/test/dir3  1  ~/test/dir1  2  ~/test  3  ~/test/dir2 [alvin@VM_0_16_centos dir3]$ popd ~/test/dir1 ~/test ~/test/dir2 [alvin@VM_0_16_centos dir1]$ dirs -v  0  ~/test/dir1  1  ~/test  2  ~/test/dir2

(2) popd +/-n

將目錄棧中的第n個元素刪除。同樣的,加減號表示從上往下數(shù),還是從下往上數(shù)。

[alvin@VM_0_16_centos dir1]$ dirs -v  0  ~/test/dir1  1  ~/test  2  ~/test/dir2 [alvin@VM_0_16_centos dir1]$ popd +1 ~/test/dir1 ~/test/dir2 [alvin@VM_0_16_centos dir1]$ dirs -v  0  ~/test/dir1  1  ~/test/dir2

“Linux下如何高效切換目錄”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

當前題目:Linux下如何高效切換目錄
文章出自:http://muchs.cn/article30/pppopo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司靜態(tài)網(wǎng)站、App開發(fā)、電子商務、移動網(wǎng)站建設網(wǎng)頁設計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司