歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 實例講解Linux中cd命令切換目錄的使用技巧

實例講解Linux中cd命令切換目錄的使用技巧

日期:2017/3/1 17:29:43   编辑:Linux技術

cd命令大家再熟悉不過了,bash shell經常會被用到的切換目錄命令. 接下來我們直接通過萬能的man來了解cd命令.

直接 man cd 是不行的,會顯示 No manual entry for cd .cd命令是bash基本命令中的一種,所以應該是 man bash.
關於man以及man page等相關內容會在以後的 LinuxShell命令:man 中詳細介紹.
通過查找man page裡可以看到cd的命令語法如下

復制代碼代碼如下:
cd [-L|[-P [-e]] [-@]] [dir]

基本作用
cd命令的作用就是從當前目錄跳轉到dir處, 如果dir處留空的話就會跳轉到環境變量HOME中設置的值.

附加內容

環境變量CDPATH
對於環境變量CDPATH,
如果沒有設置CDPATH的話,每次cd查找的跳轉目錄都是以當前的目錄為父目錄.
若有設置CDPATH的話,每次cd查找的跳轉目錄就是以設置的目錄為父目錄來查找.
e.g. 假設當前有目錄結構: ~/a/b/c 若沒有設置CDPATH

復制代碼代碼如下:
luckyshq@localhost:~$ cd a
luckyshq@localhost:~/a$ cd c
bash: cd: c: No such file or directory

若將CDPATH設為CDPATH=.:/home/luckyshq/a/b的話

復制代碼代碼如下:
luckyshq@localhost:~$ cd a
luckyshq@localhost:~/a$ cd c
luckyshq@localhost:~/a/b/c$

將常用目錄設置到CDPATH裡就能有效提高cd的效率.
CDPATH中目錄見用:隔開.
若不加上.路徑(即當前路徑的話),以前默認的本目錄作為父目錄cd就不可用了.
若dir處是以/開頭(即是絕對路徑)的話,CDPATH就失效了.

cd -P, -e參數
進入到快捷方式目錄的實際目錄中. e.g. 假設 ~ 目錄下有a,b兩個目錄, 同時a下有一個連接到b的子目錄b(這個b是快捷方式)

復制代碼代碼如下:
// 不加 -P 參數
luckyshq@localhost:~$ cd a
luckyshq@localhost:~/a$ cd b
luckyshq@localhost:~/a/b$
//加上 -P 參數
luckyshq@localhost:~$ cd a
luckyshq@localhost:~/a$ cd -P b
luckyshq@localhost:~/b$

若將一個文件夾自己的快捷方式放到文件夾裡,這樣寫腳本的時候就有可能會出現無限循環,當前路徑名就會變得無限長,但是加上了-P命令後就可以避免無線循環的情況.
如果在-P後面加上-e的話,若跳轉前路徑不存在對應物理路徑的話(比如說夾雜著多個快捷方式為名稱的路徑)就會返回一個失敗的狀態.(-e具體的用法可能要到Shell編程時才能體會到.)

cd -L參數
-L參數和-P相反(兩者不能同時出現,即 -L|-P),是跳轉到鏈接目錄中,類似於不帶參數的cd.(加不加-L具體有什麼區別還沒弄清=,=)

..
dir中如果出現了..,
若..後有路徑,則吞掉路徑中第一個目錄元素(例如 cd ../a/b/c 等價 cd b/c).
若..後沒路徑,則退回到當前路徑的父目錄中.

Copyright © Linux教程網 All Rights Reserved