Linux中檔案與目錄的區別

奮鬥小牛發表於2020-10-27

普通檔案:儲存普通資料,一般就是字串。

目錄檔案:儲存了一張表,該表就是該目錄檔案下,所有檔名和索引(inode)的對映關係。

通常父目錄會儲存有它目錄下檔案的索引對映,說白了就是一張對應關係的索引表。(Everything is file)

 

想要操作裡面的檔案,有了索引還不行,還要有許可權。

而且不單單只是看該普通檔案的許可權,還受到該檔案的父目錄、父父目錄...的許可權有關。

 

我們知道rwx是許可權的標識。

但rwx對不同的物件來說是不同的意義:

對於普通檔案來說,rwx的意義是:

r:可以獲得這個普通檔案的名字和內容。

w:可以對檔案進行增刪改的操作。

x:該檔案是否具有被執行的許可權。

 

對於目錄檔案來說,rwx的意義是:

r-x:可以進入cd該目錄,可以獲得該目錄下儲存情況,但是不能修改這個目錄內部儲存的檔案(目錄)的名字,也不能在該目錄下新建檔案和目錄

-wx:可以進入cd該目錄,但是看不到該目錄下的儲存情況(ls不可用),可以往該目錄下新增、修改、刪除檔案。可以通過cat來讀取該目錄下的檔案or目錄的內容,由於得不到該目錄下儲存了那些檔案,在不知情的情況下只能通過猜,cat + 檔名獲得檔案內容,所以這樣依然不保密。

--x:可以進入cd該目錄,看不到儲存情況,也不能往該目錄下新增、修改、刪除檔案。但是依然可以通過cat + xx(猜)來獲得該目錄下的檔案的內容。

rw-:不能進入cd該目錄,用ls僅僅可以獲得檔名和目錄名,因為獲取不到這些檔案的inode號,當然也不能獲得該目錄下的檔案的內容。不能往該目錄下新增、修改、刪除檔案。

 

其實說到底,他們也是沒什麼區別的

本質上他們都是磁碟上的一段01,目錄的資料就是當前目錄內的版檔案結構及權在磁碟中的位置,檔案的資料就是檔案本身(字串)
其實無論是linux還是Windows在刪除檔案的時候其實檔案的內容是沒有被刪除的,刪除的只是檔案的引用,就是的檔案所在的磁碟中的物理位置的位元組標記為刪除,資料恢復的原理就是把這個刪除標記去掉。

 

以上就是我通過百度整理出來的要點,目前也在學習階段,說的不好的地方請指正。

 

相關文章