偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linux下如何高效切換目錄?

系統(tǒng) Linux
Linux 下對(duì)于目錄的切換,大家肯定會(huì)想到一個(gè)命令:cd 命令。這個(gè)是 Linux 下再基本不過(guò)的命令,如果這個(gè)命令都不知道的話,趕緊剖腹自盡去吧。

Linux 下對(duì)于目錄的切換,大家肯定會(huì)想到一個(gè)命令:cd 命令。這個(gè)是 Linux 下再基本不過(guò)的命令,如果這個(gè)命令都不知道的話,趕緊剖腹自盡去吧。

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

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

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

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

[[337311]]

這三個(gè)命令其實(shí)都是對(duì) 目錄棧 進(jìn)行操作,而 目錄棧 就是一個(gè)保存目錄的棧結(jié)構(gòu),該棧結(jié)構(gòu)的頂端永遠(yuǎn)都存放著當(dāng)前目錄(敲黑板了,重點(diǎn)!!)。

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

復(fù)習(xí)完基本概念,我們?cè)賮?lái)詳細(xì)這三個(gè)命令。

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

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

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

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

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

請(qǐng)注意,最頂部的元素永遠(yuǎn)跟當(dāng)前目錄一致,如果你在其它目錄下查看目錄棧,第一個(gè)元素將對(duì)應(yīng)發(fā)生改變。同理,如果你用后文介紹的 pushd 和 popd 來(lái)操作目錄棧的話,當(dāng)前目錄將切換到目錄棧的第一個(gè)元素對(duì)應(yīng)地址。

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

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

壓入目錄棧:pushd

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

(1) pushd + 目錄

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

  1. [alvin@VM_0_16_centos test]$ pushd dir1 
  2. ~/test/dir1 ~/test 
  3. [alvin@VM_0_16_centos dir1]$ pushd ../dir2 
  4. ~/test/dir2 ~/test/dir1 ~/test 
  5. [alvin@VM_0_16_centos dir2]$ pushd ../dir3 
  6. ~/test/dir3 ~/test/dir2 ~/test/dir1 ~/test 
  7. [alvin@VM_0_16_centos dir3]$ dirs -v 
  8.  0  ~/test/dir3 
  9.  1  ~/test/dir2 
  10.  2  ~/test/dir1 
  11.  3  ~/test 

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

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

  1. [alvin@VM_0_16_centos dir3]$ dirs -v 
  2.  0  ~/test/dir3 
  3.  1  ~/test/dir2 
  4.  2  ~/test/dir1 
  5.  3  ~/test 
  6. [alvin@VM_0_16_centos dir3]$ pwd 
  7. /home/alvin/test/dir3 
  8. [alvin@VM_0_16_centos dir3]$ pushd 
  9. ~/test/dir2 ~/test/dir3 ~/test/dir1 ~/test 
  10. [alvin@VM_0_16_centos dir2]$ pwd 
  11. /home/alvin/test/dir2    #對(duì)應(yīng)目錄發(fā)生改變 
  12. [alvin@VM_0_16_centos dir2]$ dirs -v 
  13.  0  ~/test/dir2 
  14.  1  ~/test/dir3        #索引 0 和 1 的內(nèi)容對(duì)調(diào) 
  15.  2  ~/test/dir1 
  16.  3  ~/test 

(3) pushd +/-n

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

接下來(lái)就回到了我們本文開(kāi)頭的問(wèn)題,如果我們要在兩個(gè)或多個(gè)路徑很長(zhǎng)的目錄之間頻繁切換,該如何操作?

  • 首先,我們用 pushd + 目錄 的方式將這幾個(gè)路徑添加到目錄棧中;
  • 然后,再用 pushd +/-n 在不同的目錄間快速切換。具體演示如下:
    1. [alvin@VM_0_16_centos dir2]$ pwd 
    2. /home/alvin/test/dir2 
    3. [alvin@VM_0_16_centos dir2]$ dirs -v 
    4.  0  ~/test/dir2 
    5.  1  ~/test/dir3 
    6.  2  ~/test/dir1 
    7.  3  ~/test 
    8. [alvin@VM_0_16_centos dir2]$ pushd +2 
    9. ~/test/dir1 ~/test ~/test/dir2 ~/test/dir3 
    10. [alvin@VM_0_16_centos dir1]$ pwd 
    11. /home/alvin/test/dir1 
    12. [alvin@VM_0_16_centos dir1]$ dirs -v 
    13.  0  ~/test/dir1 
    14.  1  ~/test 
    15.  2  ~/test/dir2 
    16.  3  ~/test/dir3 

彈出目錄棧:popd

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

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

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

  1. [alvin@VM_0_16_centos dir3]$ dirs -v 
  2.  0  ~/test/dir3 
  3.  1  ~/test/dir1 
  4.  2  ~/test 
  5.  3  ~/test/dir2 
  6. [alvin@VM_0_16_centos dir3]$ popd 
  7. ~/test/dir1 ~/test ~/test/dir2 
  8. [alvin@VM_0_16_centos dir1]$ dirs -v 
  9.  0  ~/test/dir1 
  10.  1  ~/test 
  11.  2  ~/test/dir2 

(2) popd +/-n

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

  1. [alvin@VM_0_16_centos dir1]$ dirs -v 
  2.  0  ~/test/dir1 
  3.  1  ~/test 
  4.  2  ~/test/dir2 
  5. [alvin@VM_0_16_centos dir1]$ popd +1 
  6. ~/test/dir1 ~/test/dir2 
  7. [alvin@VM_0_16_centos dir1]$ dirs -v 
  8.  0  ~/test/dir1 
  9.  1  ~/test/dir2 

本文授權(quán)轉(zhuǎn)載自公眾號(hào)「良許Linux」。良許,世界500強(qiáng)外企Linux開(kāi)發(fā)工程師,公眾號(hào)里分享大量Linux干貨,歡迎關(guān)注!

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2011-01-05 09:40:33

windowslinux

2009-07-31 17:21:28

linux cd命令linux cd命令詳Pushd

2023-10-22 08:39:13

Linux目錄切換

2009-10-27 13:10:49

linux cd命令

2009-07-31 17:10:17

linux cd命令linux cd命令詳工作目錄

2020-04-17 14:37:19

WindowsLinux微軟

2020-02-11 15:50:51

WindowsLinux命令行

2024-02-21 08:33:27

GoReadDir性能

2009-12-03 10:05:26

Ubuntu超級(jí)用戶

2020-11-04 11:25:33

Linux目錄命令

2023-03-07 10:50:42

Linux命令系統(tǒng)

2018-09-30 10:18:44

Linux 文件系統(tǒng)目錄

2011-03-29 09:08:49

Linux配置Cacti

2011-03-29 09:08:50

Linux配置Cacti

2011-03-29 09:08:47

2009-06-23 18:36:09

2014-03-19 19:46:43

Linuxmkdir 命令

2011-02-21 14:59:50

Linuxsendmail安裝

2021-06-22 10:30:42

Linuxpushdpopd

2016-08-12 14:37:52

Linux tmpRedhattmpwatch
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)