您好,登錄后才能下訂單哦!
這篇文章主要介紹“Linux中怎么高效切換目錄”,在日常操作中,相信很多人在Linux中怎么高效切換目錄問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux中怎么高效切換目錄”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
這三個命令其實都是對 目錄棧 進行操作,而 目錄棧 就是一個保存目錄的棧結(jié)構(gòu),該棧結(jié)構(gòu)的頂端永遠都存放著當前目錄(敲黑板了,重點!!)。
有編程基礎(chǔ)的同學都知道,棧 都是遵循著 后進先出 的原則。也就是說,在棧結(jié)構(gòu)里,后面進棧的元素,將先出棧。
復習完基本概念,我們再來詳細這三個命令。
首先是 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 命令執(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 ~/test2 ~/test/dir2 3 ~/test/dir3
每次 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 ~/test3 ~/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 ~/test2 ~/test/dir2
(2) popd +/-n
將目錄棧中的第n個元素刪除。同樣的,加減號表示從上往下數(shù),還是從下往上數(shù)。
[alvin@VM_0_16_centos dir1]$ dirs -v 0 ~/test/dir1 1 ~/test2 ~/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
到此,關(guān)于“Linux中怎么高效切換目錄”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。