1. 程式人生 > >Linux ls -l 各欄位解釋,硬連結軟連線(軟硬鏈都可以有多個, 他們沒有什麼主導性, 平等, 保持同步, --刪除操作除外)

Linux ls -l 各欄位解釋,硬連結軟連線(軟硬鏈都可以有多個, 他們沒有什麼主導性, 平等, 保持同步, --刪除操作除外)

轉載:https://blog.csdn.net/weixin_37998647/article/details/79217027

如需檢視請移步被轉載文章

以root的家目錄為例: 
這裡寫圖片描述 
可以看到,用ls -l命令檢視某一個目錄會得到一個7個欄位的列表。 
第1行:總計(total) 
Total後面的數字是指當前目錄下所有檔案所佔用的空間總和。可以使用ls –lh檢視,也可使用ls –alh檢視。

第1欄位: 檔案屬性欄位 
-rw-r–r– 1 root root 762 07-29 18:19 exit 
檔案屬性欄位總共有10個字母組成;第一個字元代表檔案的型別。 
字母“-”表示該檔案是一個普通檔案 
字母“d”表示該檔案是一個目錄,字母”d”,是dirtectory(目錄)的縮寫 
注意:目錄或者是特殊檔案,這個特殊檔案存放其他檔案或目錄的相關資訊 
字母“l”表示該檔案是一個連結檔案。字母”l”是link(連結)的縮寫,類似於windows下的快捷方式 
字母“b”的表示塊裝置檔案(block),一般置於/dev目錄下,裝置檔案是普通檔案和程式訪問硬體裝置的入口,是很特殊的檔案。沒有檔案大小,只有一個主裝置號和一個輔裝置號。一次傳輸資料為一整塊的被稱為塊裝置,如硬碟、光碟等。最小資料傳輸單位為一個數據塊(通常一個數據塊的大小為512位元組) 
字母為“c”表示該檔案是一個字元裝置檔案(character),一般置於/dev目錄下,一次傳輸一個位元組的裝置被稱為字元裝置,如鍵盤、字元終端等,傳輸資料的最小單位為一個位元組。 
字母為“p”表示該檔案為命令管道檔案。與shell程式設計有關的檔案。 
字母“s”表示該檔案為sock檔案。與shell程式設計有關的檔案。 
在此重申下檔案連結這個重要概念: 
連結檔案的概念類似於windows裡的快捷方式。多個連結檔案同時指向一個“原始檔”。連結檔案分為硬連結或符號連結兩種。 
在Linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點號inode 。軟連線,其實就是新建立一個檔案,這個檔案就是專門用來指向別的檔案的(那就和windows 下的快捷方式的那個檔案有很接近的意味)。軟連線產生的是一個新的檔案,但這個檔案的作用就是專門指向某個檔案的,刪了這個軟連線檔案,那就等於不需要這個連線,和原來的存在的實體原檔案沒有任何關係,但刪除原來的檔案,則相應的軟連線不可用(cat那個軟連結檔案,則提示“沒有該檔案或目錄“) 
硬連線是不會建立inode的,他只是在檔案原來的inode link count域再增加1而已,也因此硬連結是不可以跨越檔案系統的。相反都是軟連線會重新建立一個inode,當然inode的結構跟其他的不一樣,他只是一個指明原始檔的字串資訊。一旦刪除原始檔,那麼軟連線將變得毫無意義。而硬連結刪除原始檔的時候,系統呼叫會檢查inode link count的數值,如果他大於等於1,那麼inode不會被回收,因此檔案的內容不會被刪除,相當於刪除了一個索引。 
硬連結實際上是為檔案建一個別名,連結檔案和原檔案實際上是同一個檔案。可以通過ls -i來檢視一下,這兩個檔案的inode號是同一個,說明它們是同一個檔案;而軟連結建立的是一個指向,即連結檔案內的內容是指向原檔案的指標,它們是兩個檔案。 
軟連結可以跨檔案系統,硬連結不可以;軟連結可以對一個不存在的檔名(filename)進行連結(當然此時如果你vi這個軟連結檔案,linux會自動新建一個檔名為filename的檔案),硬連結不可以(其檔案必須存在,inode必須存在);軟連結可以對目錄進行連線,硬連結不可以。兩種連結都可以通過命令 ln 來建立。ln 預設建立的是硬連結。使用 -s 開關可以建立軟連結 
第1字元的後面9個字母表示該檔案或目錄的許可權位。 
r表是讀 (Read) 、w表示寫 (Write) 、x表示執行 (eXecute) 
其中前三個表示檔案擁有者的許可權,中間三個表示檔案所屬組擁有的許可權,最後三個表示其他使用者擁有的許可權。 
比如: 
-rw-r–r– 1 root root 762 07-29 18:19 exit 
表示檔案的擁有者root對檔案有讀寫許可權,其他人(同組使用者和其他使用者只有讀的許可權) 
另外,許可權組還有一些特殊的表示法: 
[

[email protected] ~]# ll /usr/X11R6/bin/XFree86 
-rws–x–x 1 root root 1960262 2003-02-28 /usr/X11R6/bin/XFree86 
s表示這個是網路介面程式”s”是socket的縮寫。該程式在執行過程中會開啟一個網路介面。 
其他UNIX類系統如FreeBSD中還有t許可權,表示一個臨時(temporary)檔案 
ls -l /tmp可以看到這樣的許可權:drwxrwxrwt 它的最後一位是字母”t”

第2欄位:檔案硬連結數 
-rw-r–r– 1 root root 762 07-29 18:19 exit 
如果一個檔案不是目錄,此時這一欄位表示這個檔案所具有的硬連結數

, 
第2欄位的值為1,說明這個檔案只有exit這一個檔名。即只有一個指向該連結的硬連結。。 
如果使用ln,做一個指向該檔案的硬連結再檢視該檔案,該檔案的第2欄位就會變成2 
這裡寫圖片描述 
此時exit 和aexit稱為互為硬連結。他們指向同一個檔案,無論是修改哪一個檔案,另一個裡也做相應的變化,因為實際上他們指向同一個檔案(即同一檔案的不同檔名) 
互為硬連結的檔案具有相同的檔案節點。 
這裡寫圖片描述 
可以看出,這兩個檔案具有相同的檔案節點號:162302 
可以設定符號連結(軟連結),格式如下 
Ln –s 原始檔 目標連結檔案 
這裡寫圖片描述
 
注意:軟連結時檔案節點號不一樣; 
這裡寫圖片描述 
如果知道一個檔案有多個檔名(連結檔案)如何查詢他的其他檔名分佈在什麼地方呢? 
可以先用ls -i 獲得它的節點號,然後用find查詢,如/etc/sysconfig/networking/ifcfg-eth0就具有多個檔名,要查詢與它互為硬連結的檔案 
這裡寫圖片描述 
得到它的節點號為 452946 
再用find查詢: 
這裡寫圖片描述 
這樣就得到了同一個檔案的不同檔名的位置。 
第2欄位: 連結佔用的節點 
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit 
該欄位檔案佔用一個節點,屬於軟連結(符號連結) 
如果是一個目錄,則第2欄位表示該目錄所含子目錄的個數。 
新建一個空目錄,這個目錄的第二欄位就是2表示該目錄下有兩個子目錄。為什麼新建的目錄下面會有兩個子目錄呢? 
因為每一個目錄都有一個指向它本身的子目錄”。” 和指向它上級目錄的子目錄”。。”,這兩個預設子目錄是隱藏的。ls -a可以看到 
每次在目錄下新建一個子目錄,該目錄第2欄位的值就增1,但是新建一個普通檔案該欄位值不增加

第3欄位:檔案(目錄)擁有者 
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit 
該欄位表示此檔案是屬於哪個使用者。linux類系統都是多使用者系統,每個檔案都有它的擁有者。只有檔案的擁有者才具有改動檔案屬性的權利。當然, root使用者具有改動任何檔案屬性的權利。對於一個目錄來說,只有擁有該目錄的使用者,或者具有寫許可權的使用者才有在目錄下建立檔案的權利 
如果某一個使用者因為某種原因,被刪除,而該使用者的檔案還存在,那麼用ls -l 檢視該檔案將顯示一個代表使用者存在前ID號的數字。 
先建立一個使用者test,將其加入wang使用者組,並用su切換,使用ls –l檢視檔案擁有者,隨即刪除使用者test,用root進入test家目錄,檢視剛剛建立的檔案testing。 
這裡寫圖片描述 
可以看到,第三欄位成了一個數字,這個數字是原test使用者的ID號。因為檔案系統對每個檔案記錄檔案所有者的ID,而非使用者名稱。

第4欄位:檔案(目錄)擁有者所在的組 
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit 
一個使用者可以加入很多個組,但是其中有一個是主組,就是顯示在第4欄位的名稱。 
可以在useradd的時候用-g指定該使用者所在的主組,用-G指定其他組 
格式如下:Useradd –g 組名 使用者名稱

第5欄位: 檔案所佔用的空間(以位元組為單位) 
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit 
第5欄位表示檔案大小,如果是一個資料夾(目錄),則表示該資料夾的大小。請注意是資料夾本身的大小,而不是資料夾以及它下面的檔案的總大小。 
很多人不能理解資料夾是一個特殊的檔案的含義,這樣的話理解資料夾大小的含義就比較困難了。

第6欄位:檔案(目錄)最近訪問(修改)時間 
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit 
檔案建立的時間可以通過touch命令來修改。如: 
[[email protected] ~]# touch exit 
可以把exit的建立時間修改為當前時間,另外,一個檔案還有最後訪問時間,最後修改時間等屬性。 
這些屬性可以用ls 的其它引數顯示出來。

第7欄位:檔名 
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit 
如果是一個符號連結,那麼會有一個 “->” 箭頭符號,後面根一個它指向的檔名

http://www.cnblogs.com/kex1n/p/5193826.html

硬連結檔案有兩個限制
   1)、不允許給目錄建立硬連結;
   2)、只有在同一檔案系統中的檔案之間才能建立連結,而且只有超級使用者才有建立硬連結許可權。
       對硬連結檔案進行讀寫和刪除操作時候,結果和軟連結相同。但如果我們刪除硬連結檔案的原始檔,硬連結檔案仍然存在,而且保留了願有的內容。

          這時,系統就“忘記”了它曾經是硬連結檔案。而把他當成一個普通檔案。

         那麼我們就可以這樣理解:硬連線指通過索引節點來進行的連線,其作用是允許一個檔案擁有多個有效路徑名,能夠達到誤刪除的作用。

      其原因是因為對應的檔案的索引節點有一個以上的連線。只刪除一個連線並不影響索引節點本身和其它

      的連線,只有當最後一個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。檔案才會被真正刪除。

         注:儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點號(Inode Index即I節點)。          

     軟連結沒有硬連結以上的兩個限制,因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網路對檔案進行連結。但是軟連結的缺點在於:因為連結檔案包含有原檔案的路徑資訊,所以當原檔案從一個目錄下移到其他目錄中,再訪問連結檔案,系統就找不到了,而硬連結就沒有這個缺陷,你想怎麼移就怎麼移;還有它要系統分配額外的空間用於建立新的索引節點和儲存原檔案的路徑

https://blog.csdn.net/williamfan21c/article/details/53524853

關於檔案許可權

http://www.runoob.com/linux/linux-comm-chmod.html

注意chmod a=x 與chmod a+x的區別

r=4 Read

w=2 Write

x=1 eXcute