Linux檔案管理背景知識

來源:互聯網
上載者:User

作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝!

 

對於電腦來說,所謂的資料就是0和1的序列。這樣的一個序列可以儲存在記憶體中,但記憶體中的資料會隨著關機而消失。為了將資料長久儲存,我們把資料存放區在光碟片或者硬碟中。根據我們的需要,我們通常會將資料分開儲存到檔案這樣一個個的小單位中(所謂的小,是相對於所有的資料而言)。但如果資料只能組織為檔案的話,而不能分類的話,檔案還是會雜亂無章。每次我們搜尋某一個檔案,就要一個檔案又一個檔案地檢查,太過麻煩。檔案系統(file system)是就是檔案在邏輯上組織形式,它以一種更加清晰的方式來存放各個檔案。

 

1. 路徑與檔案簡介

檔案被組織到檔案系統(file system)中,通常會成為一個樹狀(tree)結構。Linux有一個根目錄/, 也就是樹狀結構的最頂端。這個樹的分叉的最末端都代表一個檔案,而這個樹的分叉處則是一個目錄(directory, 相當於我們在windows介面中看到的檔案夾)。在圖1中看到的是整個的一個檔案樹。如果我們從該樹中截取一部分,比如說從目錄vamei開始往下,實際上也構成一個檔案系統。

要找到一個檔案,除了要知道該檔案的檔案名稱,還需要知道從樹根到該檔案的所有目錄名。從根目錄開始的所有途徑的目錄名和檔案名稱構成一個路徑(path)。比如說,我們在Linux中尋找一個檔案file.txt,不僅要知道檔案名稱(file.txt),還要知道完整路徑,也就是絕對路徑(/home/vamei/doc/file.txt)。從根目錄錄/, 也就是樹狀結構的最頂端出發,經過目錄home, vamei, doc,最終才看到檔案file.txt。整個檔案系統層層分級(hierarchy),vamei是home的子目錄,而home是vamei的父目錄。

在Linux中,我們用ls命令來顯示目錄下的所有檔案,比如 $ls /home/vamei/doc

                                                                                                                         圖1 檔案樹

 

(如該圖中所示的檔案系統,即綠色構成的樹。最頂端的根目錄(/),沿紅色箭頭標出的路徑,我們最終找到檔案file.txt。)

 

2. 目錄

在Linux系統中,目錄也是一種檔案。所以/home/vamei是指向目錄檔案vamei的絕對路徑。

這個檔案中至少包含有以下條目:

.       指向目前的目錄

..      指向父目錄

除此之外,目錄檔案中還包含有屬於該目錄的檔案的檔案名稱,比如vamei中就還要有如下條目,指向屬於該目錄的檔案:

doc

movie

photo

Linux解釋一個絕對路徑的方式如下:先找到根目錄檔案,從該目錄檔案中讀取home目錄檔案的位置,然後從home檔案中讀取vamei的位置……直到找到目錄doc中的file.txt的位置。

由於目錄檔案中都有.和..的條目,我們可以在路徑中加入.或者..來表示目前的目錄或者父目錄,比如/home/vamei/doc/..與/home/vamei等同。

此外,Linux會維護一個工作目錄(present working directory)的變數。你可以隨時查詢到到工作目錄(在命令列輸入$pwd)。這是為了省去每次都輸入很長的絕對路徑的麻煩。比如說我們將工作目錄更改為/home/vamei ($cd /home/vamei),那麼此時我們再去找file.txt就可以省去/home/vamei/ ($ls doc/file.txt),這樣得到的路徑叫相對路徑(relative path),上面的doc/file.txt就是這樣一個相對路徑。

 

3. 檔案操作

對於檔案,我們可以讀取(read),寫入(write)和運行(execute)。讀取是從已經存在的檔案中獲得資料。寫入是向新的檔案或者舊的檔案寫入資料。如果檔案儲存的是可執行檔二進位碼,那麼它可以被載入記憶體,作為一個程式運行。在Linux的檔案系統中,如果某個使用者想對某個檔案執行某一種操作,那麼該使用者必須擁有對該檔案進行這一操作的許可權。檔案許可權的資訊儲存在檔案資訊(metadata)中, 見下一節。

 

3. 檔案附加資訊 (metadata)

檔案自身包含的只有資料。檔案名稱實際上儲存在目錄檔案。除了這些之外,還有作業系統維護的檔案附加資訊,比如檔案類型,檔案尺寸,檔案許可權,檔案修改時間,檔案讀取時間等。可以用ls命令查詢檔案資訊($ls -l file.txt),得到如下結果:

-rw-r--r-- 1 vamei vamei 8445 Sep  8 07:33 file1.txt

我們先介紹最開始的-,它表示檔案類型,說明file1.txt是常規檔案(如果是目錄檔案,則應顯示d)。

隨後有九個字元,為rw-r--r--,它們用於表示檔案許可權。這九個字元分為三組,rw-, r--, r--,分別對應擁有者(owner),擁有組(owner group)和所有其他人(other)。回顧Linux開機啟動,登入後,我會有一個使用者身份和一個組身份, 相當於我的名片。第一組表示,如果我的名片上的使用者身份證明我是該檔案的擁有者,那麼我就可以對該檔案有讀取(r),寫入(w)該檔案的許可權,但不擁有執行(-,如果擁有執行許可權,則為x)該檔案的許可權。第二組表示,如果我的名片上的組身份證明我所在的組是該檔案的擁有組的一員,那麼我有從該檔案讀入的許可權。第三組表示,如果我的名片顯示我既不是擁有者,也不是擁有組的一員,那麼我只有讀入的許可權。當我想要進行一個讀取操作時,Linux會先看我是否是擁有者下文會進一步解釋擁有者和擁有組。

後面的1是硬串連(hard link)數目(link count)。當file1.txt出現在目錄檔案/home/vamei/doc中時,那麼就建立了一個永久連結。file1.txt是允許屬於多個目錄檔案,相當於同一個檔案出現在多個目錄下,也就是說link count可以不止是1。當link count = 0的時候,相當於檔案脫離了檔案樹,作業系統就會刪除該檔案。所以很多時候unlink與remove在作業系統中是一個意思。由於軟連結(soft link)的廣泛使用(soft link不會影響link count,而且可以跨越檔案系統),現在較少手動建立硬串連。

之後的vamei表示使用者vamei是檔案的擁有者(owner),檔案的擁有者有權變更檔許可權(比如改為rwxrwxrwx)。而後面的vamei檔案的擁有組是組vamei。檔案的擁有者和擁有組在檔案建立時就附加在檔案上(相當於給檔案上鎖,只有有合適名片的使用者才能開啟操作)。要注意,Linux有一個超級使用者root (也叫做根使用者),該使用者擁有所有的檔案。

隨後的8445表示檔案大小,單位為byte。

Sep 8 07:33表示檔案的上一次寫入的時間(modification time)。實際上在檔案附加資訊中還包含有檔案的上一次讀取時間(access time),沒有顯示出來。

 

4. 軟連結 (soft link, or symbolic link)

如上所說,軟連結不會影響檔案的link count。如果還記得windows系統的捷徑的話,Linux的軟連結(soft link,也叫做symbolic link)就是linux的捷徑。軟連結本質上是一個檔案,它的檔案類型是symbolic link。在這個檔案中,包含有連結指向的檔案的絕對路徑。當你從這個檔案讀取資料時,linux會把你導向所指向的檔案,然後從那個檔案中讀取(就好像你雙擊捷徑的效果一樣)。軟連結可以方便的在任何地方建立,並指向任何一個絕對路徑。

軟連結本身也是一個檔案,也可以執行檔案所可以進行的操作。當我們對軟連結操作時,要注意我們是對軟連結本身操作,還是對軟連結指向的目標操作。如果是後者,我們就說該操作跟隨連結指引(follow the link)。

 

5. umask

當我們建立檔案的時候,比如使用touch,它會嘗試將建立檔案建立為許可權666,也就是rw-rw-rw-。但作業系統要參照許可權mask來看是否真正將檔案建立為666。許可權mask表示作業系統不允許設定的許可權位,比如說037(----wxrwx)的許可權mask意味著不允許設定設定group的wx位和other的rwx位。如果是這個許可權mask的話,最終的檔案許可權是rw-r----- (group的w位和other的rw位被mask)。

我們可以通過

$umask 022

的方式改變許可權mask。

 

總結

電腦本質上是對資料進行處理的工具,而檔案是資料儲存的邏輯載體,所以瞭解Linux檔案系統很重要。對於檔案系統的瞭解要結合Linux的其他方面(比如使用者管理)進行有機的學習。

檔案許可權,擁有者,擁有組,超級使用者root

永久連結,軟連結,follow the link

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.