Linux中國

終端基礎:Linux 終端中的目錄切換

本篇文章作為終端基礎教程系列的一部分,介紹如何在 Linux 命令行中,利用絕對路徑和相對路徑實現目錄切換。

Linux 的 cd 命令讓你可以輕鬆切換文件夾(即目錄)。只需提供你要切換到的文件夾路徑即可。

cd path_to_directory

然而對於 Linux 新人來說,可能會在路徑的指定上有所困擾。

首先,讓我們解決這個問題。

理解 Linux 中的路徑

在 Linux 文件系統中,路徑是用來追蹤文件位置的信息。所有的路徑都從根目錄開始,然後向下延伸。

你可以通過下面的方式查看當前所在的位置:

pwd

結果可能是類似於 /home/username 的輸出。注意,這裡的 username 將會是你自己的用戶名。

你可以注意到,路徑是由 / 符號和目錄名組成的。比如路徑 /home/abhishek/scripts, 表示 scripts 是在文件夾 abhishek 之內,而文件夾 abhishekhome 文件夾之內。要注意,第一個 '/' 是指根目錄(即文件系統的開始處),後面的 '/' 則作為目錄的分隔符。

Path in Linux

?️ 在終端中鍵入 ls /,然後按回車。你將會看到根目錄下的所有內容,試試看!

接下來,讓我們學習兩種常見的路徑指定方式:絕對路徑和相對路徑。

絕對路徑:這種路徑從根開始,然後一直擴展到你需要的位置。如果一個路徑是以 / 開頭,那就說明它是一個絕對路徑。

相對路徑:這是相對於你文件系統中當前位置的路徑。如果我當前位置在 /home/abhishek,並且我需要去 /home/abhishek/Documents, 我只需要簡單地切換到 Documents,而不需要指定整個絕對路徑 /home/abhishek/Documents

在我演示這兩種路徑的區別之前,有必要先熟悉兩個特殊的目錄標識:

  • . (單點)表示當前目錄。
  • .. (雙點)表示上一級目錄,也就是當前目錄的母目錄。

這裡有一張圖形化的表示。

Absolute path vs relative path

利用 cd 命令變更目錄

在你已對路徑概念有所了解之後,我們來了解如何切換目錄。

?️ 如果你僅鍵入 cd 並按回車鍵,無論當前位置在哪,系統都會將你帶回主目錄。試一試吧。

敲入以下命令,你就能看到主目錄里的所有文件夾:

ls

這是我看到的情況:

abhishek@ituxedo:~$ ls
Desktop    Downloads  Pictures  Templates  VirtualBoxVMs
Documents  Music      Public    Videos

你的情況可能與此類似,但未必完全一樣。

假如你希望跳轉到 Documents 文件夾。由於它就在當前目錄下,這裡使用相對路徑會比較方便:

cd Documents

? 注意,大部分 Linux 發行版預設的終端模擬器會在提示符本身顯示出當前所在的位置。因此你不必頻繁使用 pwd 指令來確認自己的位置。

Most Linux terminal prompts show the current location

假如你希望切換到位於主目錄里的 Templates 文件夾。

你可以使用相對路徑 ../Templates.. 會讓你返回到上層目錄,即 /home/username,然後你就可以進入 Templates 文件夾了)。

但這次我們嘗試使用絕對路徑。請把下面的 abhishek 替換成你的用戶名。

cd /home/abhishek/Templates

此刻你已經在 Templates 文件夾里了。如何前往 Downloads 文件夾呢?這次我們再使用相對路徑:

cd ../Downloads

下面的圖片會回顧一下你剛才學到的所有或有關目錄切換的範例。

cd command example

? 別忘了你還可以使用終端的 tab 鍵自動補全功能。只需要鍵入命令或者文件夾名稱的前幾個字母,然後敲擊 tab 鍵,系統就會嘗試自動地補全命令或文件夾名稱,或者給你顯示出所有可能的選項。

故障解決

在 Linux 終端操作切換目錄的過程中,你可能會遇到一些常見的錯誤。

文件或目錄不存在

如果在你嘗試切換目錄時,出現類似下面的錯誤信息:

bash: cd: directory_name: No such file or directory

那麼你可能在路徑或目錄名稱上犯了誤解。這裡有幾點你需要注意的:

  • 請確定你輸入的目錄名中沒有拼寫錯誤。
  • Linux 系統對大小寫敏感,因此,Downloadsdownloads 會被識別為不同的目錄。
  • 你可能未正確指定路徑。可能你所在的位置與你預期的不同?或者你遺漏了絕對路徑中的開頭的 / 字元?

Common examples of "no such file or directory" error

非目錄錯誤

如果你看到像下面這樣的錯誤提示:

bash: cd: filename: Not a directory

這表示你嘗試使用 cd 命令對一個文件進行操作,而不是一個目錄(文件夾)。很明顯,你不能像進入文件夾那樣「進入」一個文件,因此會出現這樣的錯誤。

Not a directory error with the cd command

參數過多

這是 Linux 新手常犯的另一個錯誤:

bash: cd: too many arguments

cd 命令只接受一個參數。也就是說,你只能對命令指定一個目錄。

如果你指定了超過一個的參數,或者在路徑中誤加了空格,你就會看到這個錯誤。

Too many arguments error in Linux terminal

?? 如果你輸入 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

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國