linux下ls -l命令(即ll命令)檢視檔案的顯示結果分析
在linux下使用“ls -l”或者“ls -al”或者“ll”命令檢視檔案及目錄詳情時,shell中會顯示出好幾列的資訊。平時也沒怎麼注意過,今天忽然心血來潮想了解一下,於是整理了這篇部落格,以供參考:
首先給出一張典型的顯示結果:
下面對其中的每一列進行詳細的分析:
一、檔案型別
表示該檔案的型別:
- “-”表示普通檔案;
- “d”表示目錄;
- “l”表示連結檔案;
- “p”表示管理檔案;
- “b”表示塊裝置檔案;
- “c”表示字元裝置檔案;
- “s”表示套接字檔案;
二、檔案屬性
以back_init檔案為例,其屬性可分為三段:[rwx][rwx][r-x],其中:
第一段表示檔案建立者/所有者對該檔案所具有的許可權,第二段表示建立者/所有者所在的組的其他使用者所具有的許可權,第三段表示其他組的其他使用者所具有的許可權。
- r(Read,讀取許可權):對檔案而言,具有讀取檔案內容的許可權;對目錄來說,具有瀏覽目錄的許可權。
- w(Write,寫入許可權):對檔案而言,具有新增、修改檔案內容的許可權;對目錄來說,具有刪除、移動目錄內檔案的許可權。
- x(eXecute,執行許可權):對檔案而言,具有執行檔案的許可權;對目錄來說,該使用者具有進入目錄的許可權。
另外,這裡還有2個很特殊的屬性,平時不怎麼常見,這裡也順帶解釋一下:
- s或S(SUID,Set UID)
- t或T(Sticky):/tmp和 /var/tmp目錄供所有使用者暫時存取檔案,亦即每位使用者皆擁有完整的許可權進入該目錄,去瀏覽、刪除和移動檔案。
綜合起來可得,對於back_init檔案,其建立者/所有者具有可讀可寫可執行的許可權,其建立者/所有者所在的組的其他使用者具有可讀可寫可執行的許可權,其他組的其他使用者則具有可讀可執行但不可寫的許可權。
三、目錄/連結個數
對於目錄檔案,表示它的第一級子目錄的個數。注意此處看到的值要減2才等於該目錄下的子目錄的實際個數。
比如這裡的include目錄下,其實是沒有子目錄的,所以應該是0,但是它這裡卻顯示2,這是因為要加上.目錄和..目錄。在linux下,.目錄表示當前目錄,..目錄表示上一級目錄。
這也可以解釋上圖中第一行的.目錄下的3和第二行..目錄下的26。因為當前目錄下有一個include目錄,所以加上.目錄和..目錄這2個目錄就等於3,所以第一行會顯示3。而上一級目錄共有24個目錄,加上上一級目錄的.目錄和..目錄這2個目錄,所以這裡的第二行顯示的是26。
對於其他檔案,表示指向它的連結檔案的個數。
四、所有者及組
表示該檔案的所有者/建立者(owner)及其所在的組(group)。
五、檔案大小
如果是檔案,則表示該檔案的大小,單位為位元組。
如果是目錄,則表示該目錄符所佔的大小,並不表示該目錄下所有檔案的大小。
六、修改日期
該檔案最後修改的日期時間。
七、檔名稱
檔名,無需多說。
八、字型顏色
在大多數的linux shell視窗中,還能用顏色來區分不同檔案的屬性:
- 灰白色表示普通檔案;
- 亮綠色表示可執行檔案;
- 亮紅色表示壓縮檔案;
- 灰藍色表示目錄;
- 亮藍色表示連結檔案;
- 亮黃色表示裝置檔案;
當然,這裡需要使用系統預設的配色方案。如果你自定義了shell的配色方案,則有可能與上面的定義不一致。
最後還要說明一點的是,可以看到上述的圖片中,back_init檔案的後面還帶了一個星號(*),這也是linux系統下用於標記可執行檔案的另外一種方式。也就是說,凡是檔名後面帶了一個星號(*)的,都是在說明這是一個可執行檔案。