linux 下文件管理值得注意的地方
1.文件的權限管理
? ?linux中,最令我感到印象深刻的是它的權限管理,比windows系統靈活得多,也嚴格的多,對于使用者,也方便設置。利用ls -l命令我們可以查看到,當前文件夾下的文件屬性情況。一共是7列,分別是權限,鏈接數,文件所有者,文件所有組,文件的大小,文件的修改日期,以及文件名。
? ? ?看看這兩個難理解的屬性:
(1)權限屬性,這一列代表了文件的類型與權限,一共有10個字符,第一個字符表示文件的類型,-表示為普通文件,d表示為目錄文件,此外,還有l表示為鏈接文件,b表示塊接口設備文件,c表示串行接口設備文件,例如鍵盤、鼠標,也就是字符型設備文件。后9個字符代表了文件的權限信息,其中以3個為一組,一共3組。r代表可讀,w代表可寫,x代表可執行,他們的位置不會改變,如果沒有響應的權限,就用符號-表示。
? ? ? ?2-4字符為第一組,代表了文件所有者的權限,以showinfo2為例子,即對所有者cenkaijie5來講,他具有rw的權限,而不具有x的權限,即具有讀,寫文件的權限,但是不具有執行的權限。
? ? ? 5-7字符為第二組,代表了文件所有組的權限。
? ? ? 8-10字符為第三組,代表了其他用戶的權限,仍showinfo2為例,r--,即其他用戶對showinfo2文件只具有讀權限。
(2)連接數屬性,這個屬性代表了 有多少個文件與當前這個文件是同一個文件,對于ext2文件來說,也就是具有相同的inode號。
對于普通文件來說,每當你創建一個硬鏈接,例如,執行命令ln user user2后,user的鏈接數變為了2,因為user,user2都指向了同一個文件,即具有相同的inode號。
對于目錄來說,也是如此。但是值得注意的是,目錄的鏈接數至少為2。因為每當你新建一個目錄時,這個目錄下必會創建兩個目錄文件. 與 .. , 目錄文件 . 與你新創建的目錄具有相同的inode號,目錄文件.. 與你新創建的目錄的上級目錄具有相同的inode號。所以,每當你新建一個目錄時,這個目錄的鏈接數為2,這個目錄的上級目錄 鏈接數為3,所以可以看出,對于目錄文件下載來說,它的鏈接數為5, 可表明 它有 3個目錄文件。
?
二.下面討論一下權限對 目錄與普通文件的意義
這個部分容易會理解出現偏差,不能簡單地把目錄與普通文件看成等同。
1.對于普通文件(包括文本文件,jpg各種格式的文件,二進制文件等等)來說,它的數據塊保存的就是真正的內容,真正的人們所需要的數據,所以權限對它來說,就是:
? r 讀權限: 可讀取此文件的實際內容。
? w寫權限:可以修改,編輯,新增文件的實際內容,但是不包括 刪除該文件的權限。
??x執行權限: 該文件可以被系統執行的權限。
2.對于目錄文件來說,它的數據塊data block保存的就是 文件名列表以及對應的inode號。?文件名與目錄文件有強烈的關系,因為 inode table里面 并不包括 文件名。
? r讀權限:意味著可以data block的內容,即意味著可以讀取目錄下的文件名列表。
? w寫權限: 意味著可以改寫data block的內容,即可以刪除文件,新增文件。
? x執行權限: 意味著可以進入到 目錄中,讓 目錄 成為 工作目錄, 讀取 文件列表的各種屬性。
??目錄只有可讀權限的情況下,使用ls命令,如下圖,即只能看到文件夾下的文件名,而文件的屬性都看不到,文件的屬性都是放在文件的inode中,而不是目錄的data block里
?目錄只有可執行權限的情況下,使用ls命令,如下圖,則根本看不到目錄data block里的內容,也就是看不到 文件的文件名 與 inode號。
但是 假設你知道這個目錄下的文件名tv,并且有tv的讀權限,你則可以使用cat cc/tv 來查看文件,如下
?
再舉一個例子(linux 鳥哥的私房菜)來說,如果我要讀取cat /etc/passwd這個文件時,系統是如何讀取的?
1. /的inode?
? ?通過掛載點的信息找到/的inode號為2,且inode記錄的權限為r-x,所以我們可以進入/目錄下。
2./的block
? ?讀取/的data block塊, ?看是否有etc的文件。存在,在找到了etc的inode號1912423。
3.etc的inode
? ?inode記錄的權限為r-x,所以我們進入到etc目錄下。
4.etc的block
? ?讀取etc的data block塊, ?看是否有passwd的文件。存在,在找到了passwd的inode號1914888。
5.passwd的inode
? ?inode記錄的權限為r--,所以可以把passwd的data block內容讀取
6.passwd的block
? ?最后data block的內容讀出。
總結一下,我的理解,(1)目錄 的x權限 是必須的,也是最重要的一個權限。 沒有目錄x權限,你無法進入到這個目錄中, 不能對 刪除,新增文件,也不能修改 ,查看,執行已存在的文件,最多你只能查詢目錄下的文件名列表。 無 ?目錄的 x權限 ,幾乎動彈不得。
(2)目錄的 r權限 是非必須的, 有了r權限, 你可以通過ls 命令 查詢 目錄下 的文件名列表哦;沒了r權限,如果你已經知道了文件名,你仍可能對文件進行修改,查看,與執行。
(3)而目錄的w權限 ,是用來建立,刪除,重命名文件的,必須與x權限 結合,否則無效。
?
3. 硬鏈接與軟鏈接的區別?
硬鏈接是通過inode號連接文件,不占用額外的inode號,只在目錄文件的datablock 中增加一表項。
?軟鏈接又稱符號鏈接,它比硬鏈接更為常用,是一種特殊的文件類型,通過 文件路徑 來鏈接到 另一文件,而不是直接鏈接到inode
?1.硬鏈接 基于inode實現,因為inode號的唯一性,而不同文件系統的inode號不一致,所以硬鏈接不能跨文件系統;而軟連接是基于路徑實現,所以可以跨文件系統
?2.在linux 中, 限制了硬鏈接不能連接到 目錄(除了 系統 . 與 .. 這兩個特殊的情況外) ,而軟鏈接則可以。
?綜上來看,軟鏈接更為常用。?
轉載于:https://www.cnblogs.com/xiaoshi1991/archive/2012/09/18/2692386.html
總結
以上是生活随笔為你收集整理的linux 下文件管理值得注意的地方的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华硕K45V怎么用u盘装系统 华硕K45
- 下一篇: 怎么给电脑合并磁盘分区 电脑磁盘合并教程