Linux教程:Linux下如何高效切換目錄?(附影片教程)
Linux 下對於目錄的切換,大家肯定會想到一個命令:cd 命令。這個是 Linux 下再基本不過的命令,如果這個命令都不知道的話,趕緊剖腹自盡去吧。
cd 命令確實很方便,但如果需要頻繁在下面的目錄切換,你可能要懷疑人生了:
/home/alvin/projects/blogdemos/linux-system-programming/thread
/home/alvin/projects/blogdemos/diff
/home/harry/study/日本文化
/中日交流/影視業/動作片
如果只會 cd 命令的話,那麼就需要不停地 cd ,直到你發瘋。
在這種情況下,我們如何高效進行目錄切換呢?良許給大家介紹三個命令:pushd 、 popd 、 dirs 。
這三個命令其實都是對 目錄棧 進行操作,而 目錄棧 就是一個儲存目錄的棧結構, 該棧結構的頂端永遠都存放著當前目錄(敲黑板了,重點!!)。
有程式設計基礎的同學都知道,棧 都是遵循著 後進先出 的原則。也就是說,在棧結構裡,後面進棧的元素,將先出棧。
複習完基本概念,我們再來詳細這三個命令。
顯示目錄棧內容:dirs
首先是 dirs 。這個命令很簡單,就是顯示目錄棧的內容。它有以下三個常用選項:
選項含義-p每行顯示一條記錄-v每行顯示一條記錄,同時展示該記錄在棧中的index-c清空目錄棧
其中,-p 與 -v 選項的區別是,-v 選項將顯示每條記錄在棧中的索引,除此之外完全一樣。假如現在有一個目錄棧,我們來看看它裡面有啥內容:
[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
請注意,最頂部的元素永遠跟當前目錄一致,如果你在其它目錄下檢視目錄棧,第一個元素將對應發生改變。同理,如果你用後文介紹的 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 命令執行完成之後,預設都會執行一個 dirs 命令來顯示目錄棧的內容。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 (不帶任何引數)
pushd 不帶任何引數執行的效果就是,將目錄棧最頂層的兩個目錄進行交換。前面我們已經強調過,目錄棧第一個元素與當前目錄是相關的,所以第一個元素髮生改變時,當前目錄將對應切換,反之亦然。
[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
#對應目錄發生改變
[alvin@VM_0_16_centos dir2]$ dirs -v
0 ~/test/dir2
1 ~/test/dir3 #索引 0 和 1 的內容對調
2 ~/test/dir1
3 ~/test
**3. pushd +/-n **
pushd +/-n 就是直接切換到對應索引值的目錄。注意,這裡既可以用加號,也可以用減號。如果是加號的話,將從目錄棧由上往下數,而用減號的話,將從目錄棧由下往上數。
接下來就回到了我們本文開頭的問題,如果我們要在兩個或多個路徑很長的目錄之間頻繁切換,該如何操作?
首先,我們用 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 命令執行完成之後,預設都會執行一個 dirs 命令來顯示目錄棧的內容。popd 的用法主要有如下幾種:
1. popd (不帶任何引數)
popd不帶任何引數執行的效果,就是將目錄棧中的棧頂元素出棧。這時,棧頂元素髮生變化,自然當前目錄也會發生相應的切換。
[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個元素刪除。同樣的,加減號表示從上往下數,還是從下往上數。
[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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2714743/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下高效切換目錄的方法Linux
- 在Linux命令列內的大小寫轉換(附全套Linux影片教程)Linux命令列
- 【實操案例】Linux中切換目錄如何操作?Linux
- 【Linux入門教程】1 簡介、檔案管理、目錄Linux
- cd 切換目錄
- cd:切換目錄
- 雲端計算影片教程:2020Linux新手小白影片教程Linux
- Linux下Certbot使用教程Linux
- linux下的臨時目錄Linux
- windows/linux下nvm管理nodeJS切換WindowsLinuxNodeJS
- Selenium系列教程-09 如何切換iframe
- Linux下更新curl版本教程!Linux
- Linux下安裝svn教程Linux
- 【Linux基礎】Linux目錄Linux
- Linux 環境下如何安裝部署 RocketMQ 教程LinuxMQ
- git切換到指定目錄Git
- Linux中如何檢視目錄下的檔案大小?Linux
- Linux雲端計算教程全套影片合集:關於Alpine LinuxLinux
- linux zsh 切換 bashLinux
- 如何在 Linux 中刪除目錄Linux
- 新手教程:如何在 Linux 下解壓 Zip 檔案Linux
- 【Linux學習教程】Linux中Sed命令如何使用?Linux
- cd命令切換目錄簡寫
- linux將掛載在home目錄下的磁碟轉移到根目錄下Linux
- Linux誤刪除/(根)目錄下usr目錄系統救援方法Linux
- Linux系統中如何切換使用者?Linux
- Linux中什麼是工作目錄?linux cd命令如何使用?Linux
- 如何獲取 Linux 中的目錄大小Linux
- linux部落格目錄Linux
- Linux批量建立目錄Linux
- Linux 目錄詳解Linux
- linux 目錄及其作用Linux
- linux目錄詳解Linux
- Linux下搭建FTP伺服器教程LinuxFTP伺服器
- Linux下jdk的安裝解除安裝切換LinuxJDK
- Linux下如何對目錄中的檔案進行統計Linux
- 人工智慧教程——目錄人工智慧
- Linux系統中切換目錄的命令是什麼?Linux