前言

Linux的檔案系統跟Windows不太一樣,雖然都有絕對位置與相對位置的觀念,但是在LInux上不會有C槽、D槽等,存放的也不只有檔案與料夾。本文將講解Linux的檔案系統基本知識,讓剛入門Linux的朋友們可以更快有概念開始使用這個好用好玩的系統。

根目錄

目錄就是資料夾,根目錄就是電腦中所有檔案的最頂端的資料夾;也就是在任何一個資料夾一直選回到上一層會到達的那個資料夾。

早期的Windows只能使用反斜線作為資料夾的分割符號,也就是這個從左上到右下的斜線:\,後來Windows也支援斜線作為分割符號,也就是這個從右上到左下的斜線:/,因此以Windows為範例的時候我都以斜線來表示。

在Windows中,這個路徑/Windows裝著Windows的作業系統的重要檔案,但是/Windows在一台電腦裡面一定是系統資料夾嗎?其實並不是,因為他可能是「C:/Windows」,也可能是「D:/Windows」,因此光靠「/Windows」這些資訊不能在一台電腦中判斷他的確定位置。因為Windows還需要知道你在哪一個磁碟區工作,通常你的程式放在D槽運作,Windows就會當作你想要去的是「D:/Windows」,除非你更改工作目錄。

補充說明,其實系統資料夾也不一定在C槽,也不一定在Windows資料夾,因此微軟建議尋找系統資料夾的時候直接使用系統環境變數來取得。

絕對路徑與相對路徑

絕對路徑代表電腦裡面唯一的一個位置,不會有兩個檔案擁有相同的絕對位置。

  • /etc 這是存放系統設定檔的資料夾
  • /etc/passwd 這是存放系統帳號的檔案
  • /etc/systemd 這是資料夾,底下還有資料
  • /dev/sda 這是一顆硬碟😂下一節會提到

絕對路徑是從電腦根目錄開始往下找,還可以展開成樹狀結構,有學過資料結構的朋友們應該有學到如何走訪樹(Tree),資料夾是節點(Node)檔案是葉子,用走訪樹的方式就能遍歷硬碟內所有資料了。

相對路徑則是要看你站在樹的什麼位置來尋找檔案,比如你站在根目錄 / 要找passwd檔案會找不到,站在 /etc 目錄就能找到了。如果站在 /etc/system 想要找passwd檔案呢?需要輸入 ../passwd,這個意思是回到上一層資料夾尋找passwd,甚至還可以輸入 ../../dev,這代表往上兩層,於是會找到 /dev 這個資料夾。

補充說明,兩個點代表上一層,一個點代表目前這一層,波浪符號代表家目錄,而斜線呢當然是代表根目錄啦。

Linux資料夾裡面不只存放檔案

在Windows資料夾裡面存放的都是實際儲存在硬碟內的檔與資料夾,但Linux系統比較特別,Linux內存放檔案與資料夾之外還有硬體裝置、程式Socket(接口、插座)、程式行程。

聽起來可能有點奇怪,但Linux的 /dev 資料夾內存放著一堆看起來像是檔案的東西,都是電腦上的硬體裝置,例如硬碟、光碟機、USB裝置、RS232裝置等,這點需要習慣一下。

檔案系統

常用Window的朋友應該多少知道Window的磁碟格式叫做NTFS,全稱為New Technology File System,是Windows專用的格式。Linux不使用這個格式,在Linux上有很多選擇,就是沒有NTFS,因此不經過一些轉換處理的話,Windows與Linux沒辦法直接讀取對方的硬碟,或是只能讀取不能寫入等狀況。

Linux的檔案格式有多種,目前常見的一個是EXT4。