終端基礎:Linux 終端中的目錄切換
本篇文章作為終端基礎教程系列的一部分,介紹如何在 Linux 命令行中,利用絕對路徑和相對路徑實現目錄切換。
Linux 的 cd
命令讓你可以輕鬆切換文件夾(即目錄)。只需提供你要切換到的文件夾路徑即可。
cd path_to_directory
然而對於 Linux 新人來說,可能會在路徑的指定上有所困擾。
首先,讓我們解決這個問題。
理解 Linux 中的路徑
在 Linux 文件系統中,路徑是用來追蹤文件位置的信息。所有的路徑都從根目錄開始,然後向下延伸。
你可以通過下面的方式查看當前所在的位置:
pwd
結果可能是類似於 /home/username
的輸出。注意,這裡的 username
將會是你自己的用戶名。
你可以注意到,路徑是由 /
符號和目錄名組成的。比如路徑 /home/abhishek/scripts
, 表示 scripts
是在文件夾 abhishek
之內,而文件夾 abhishek
在 home
文件夾之內。要注意,第一個 '/' 是指根目錄(即文件系統的開始處),後面的 '/' 則作為目錄的分隔符。
?️ 在終端中鍵入
ls /
,然後按回車。你將會看到根目錄下的所有內容,試試看!
接下來,讓我們學習兩種常見的路徑指定方式:絕對路徑和相對路徑。
絕對路徑:這種路徑從根開始,然後一直擴展到你需要的位置。如果一個路徑是以 /
開頭,那就說明它是一個絕對路徑。
相對路徑:這是相對於你文件系統中當前位置的路徑。如果我當前位置在 /home/abhishek
,並且我需要去 /home/abhishek/Documents
, 我只需要簡單地切換到 Documents
,而不需要指定整個絕對路徑 /home/abhishek/Documents
。
在我演示這兩種路徑的區別之前,有必要先熟悉兩個特殊的目錄標識:
.
(單點)表示當前目錄。..
(雙點)表示上一級目錄,也就是當前目錄的母目錄。
這裡有一張圖形化的表示。
利用 cd 命令變更目錄
在你已對路徑概念有所了解之後,我們來了解如何切換目錄。
?️ 如果你僅鍵入
cd
並按回車鍵,無論當前位置在哪,系統都會將你帶回主目錄。試一試吧。
敲入以下命令,你就能看到主目錄里的所有文件夾:
ls
這是我看到的情況:
abhishek@ituxedo:~$ ls
Desktop Downloads Pictures Templates VirtualBoxVMs
Documents Music Public Videos
你的情況可能與此類似,但未必完全一樣。
假如你希望跳轉到 Documents
文件夾。由於它就在當前目錄下,這裡使用相對路徑會比較方便:
cd Documents
? 注意,大部分 Linux 發行版預設的終端模擬器會在提示符本身顯示出當前所在的位置。因此你不必頻繁使用
pwd
指令來確認自己的位置。
假如你希望切換到位於主目錄里的 Templates
文件夾。
你可以使用相對路徑 ../Templates
(..
會讓你返回到上層目錄,即 /home/username
,然後你就可以進入 Templates
文件夾了)。
但這次我們嘗試使用絕對路徑。請把下面的 abhishek
替換成你的用戶名。
cd /home/abhishek/Templates
此刻你已經在 Templates
文件夾里了。如何前往 Downloads
文件夾呢?這次我們再使用相對路徑:
cd ../Downloads
下面的圖片會回顧一下你剛才學到的所有或有關目錄切換的範例。
? 別忘了你還可以使用終端的
tab
鍵自動補全功能。只需要鍵入命令或者文件夾名稱的前幾個字母,然後敲擊tab
鍵,系統就會嘗試自動地補全命令或文件夾名稱,或者給你顯示出所有可能的選項。
故障解決
在 Linux 終端操作切換目錄的過程中,你可能會遇到一些常見的錯誤。
文件或目錄不存在
如果在你嘗試切換目錄時,出現類似下面的錯誤信息:
bash: cd: directory_name: No such file or directory
那麼你可能在路徑或目錄名稱上犯了誤解。這裡有幾點你需要注意的:
- 請確定你輸入的目錄名中沒有拼寫錯誤。
- Linux 系統對大小寫敏感,因此,
Downloads
和downloads
會被識別為不同的目錄。 - 你可能未正確指定路徑。可能你所在的位置與你預期的不同?或者你遺漏了絕對路徑中的開頭的
/
字元?
非目錄錯誤
如果你看到像下面這樣的錯誤提示:
bash: cd: filename: Not a directory
這表示你嘗試使用 cd
命令對一個文件進行操作,而不是一個目錄(文件夾)。很明顯,你不能像進入文件夾那樣「進入」一個文件,因此會出現這樣的錯誤。
參數過多
這是 Linux 新手常犯的另一個錯誤:
bash: cd: too many arguments
cd
命令只接受一個參數。也就是說,你只能對命令指定一個目錄。
如果你指定了超過一個的參數,或者在路徑中誤加了空格,你就會看到這個錯誤。
?? 如果你輸入
cd -
,它將會把你帶到前一個目錄。當你在兩個相隔較遠的地方切換時非常方便,可以避免再次輸入長路徑。
特殊目錄符號
在結束這個教程之前,我想快速告訴你關於特殊符號 ~
。在 Linux 中,~
是用戶主目錄的捷徑。
如果用戶 abhi
運行它,~
就會代表 /home/abhi
,如果用戶 prakash
運行,~
就意味著 /home/prakash
。
總結一下你在這個基礎教程系列中學到的所有特殊目錄標識:
符號 | 描述 |
---|---|
. |
當前目錄 |
.. |
上級目錄 |
~ |
主目錄 |
- |
前一個目錄 |
測試你的知識
下面是一些簡單的練習,用來測試你剛剛學到的關於路徑和 cd
命令的知識。
移動到你的主目錄,並使用這個命令創建一個嵌套的目錄結構:
mkdir -p sample/dir1/dir2/dir3
然後,一步步來試試這個:
- 使用絕對路徑或相對路徑進入
dir3
- 使用相對路徑移動到
dir1
- 使用你能想像到的最短路徑進入
dir2
- 使用絕對路徑切換到
sample
目錄 - 返回你的主目錄
? 想知道你是否全都做對了嗎?歡迎分享你的答案。
現在你知道如何切換目錄,是不是應該學習一下如何創建它們呢?
我強烈推薦你閱讀這篇文章,了解一些關於終端和命令的小技巧。
如果你想了解 Linux 命令行的基礎知識,記得關注我們的 Linux 終端基礎系列教程的更多章節。
via: https://itsfoss.com/change-directories/
作者:Abhishek Prakash 選題:lkxed 譯者:ChatGPT 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive