天天看點

ls -l 清單資訊詳解

 [root@localhost ~]# ls -l

總計 152

-rw-r--r-- 1 root root 2915 08-03 06:16 a

-rw------- 1 root root 1086 07-29 18:35 anaconda-ks.cfg

…………………………………………

第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目錄下,裝置檔案是普通檔案和程式通路硬體裝置的入口,是很特殊的檔案。沒有檔案大小,隻有一個主裝置号和一個輔裝置号。一次傳輸資料為一整塊的被稱為塊裝置,如硬碟、CD光牒等。最小資料傳輸機關為一個資料塊(通常一個資料塊的大小為512位元組)

c表示該檔案是一個字元裝置檔案(character),一般置于/dev目錄下,一次傳輸一個位元組的裝置被稱為字元裝置,如鍵盤、字元終端等,傳輸資料的最小機關為一個位元組

p表示該檔案為指令管道檔案。與shell程式設計有關的檔案

s表示該檔案為sock檔案。與shell程式設計有關的檔案

連結檔案分為硬連結或符号連結兩種。

硬連結:多個指向同一檔案。硬連結檔案大小完全相同,如有多個硬連結,所連結的檔案隻是一個檔案大小。

同一個檔案所有的檔案都是等價的,作業系統不區分連結建立的先後順序,若一個檔案存在兩個連結,那麼除去一個檔案還可以通過另外一個檔案來通路該檔案,也可以除去建立連結時用到的檔案,但隻要還有一個連結存在,就可通過該連接配接通路檔案。

符号連結(軟連結):建立一個獨立的檔案,這個檔案會讓資料的讀取指向它連結的檔案内容。類似windows快捷方式。

第1字段後9個字母表示該檔案或目錄的權限位。

r表是讀 (Read) 、w表示寫 (Write) 、x表示執行 (eXecute)

前三個表示檔案擁有者的權限,中間三個表示檔案所屬組擁有的權限,最後三個表示其他使用者擁有的權限。

SUID和GUID解析:

s:4;g:2;o:1

4777即rwsrwxrwx。6777即rwsrwsrwx

第2字段:檔案硬連結數

-rw-r--r-- 1 root root 762 07-29 18:19 exit

如果一個檔案不是目錄,此時這一字段表示這個檔案所具有的硬連結數

第2字段的值為1,說明檔案exit隻有exit這一個檔案名。即隻有一個指向該連結的硬連結。

如果使用ln,做一個指向該檔案的硬連結再檢視該檔案,該檔案的第2字段就會變成2

[root@localhost ~]# ln exit aexit

[root@localhost ~]# ls -l

總計 160

-rw-r--r-- 2 root root 762 07-29 18:19 aexit

-rw-r--r-- 2 root root 762 07-29 18:19 exit

此時exit 和aexit稱為互為硬連結。同指向一個檔案,無論是修改哪一個檔案,另一個裡也做相應的變化,即同一檔案的不同檔案名

互為硬連結的檔案具有相同的檔案節點。

[root@localhost ~]# ls -i aexit exit

162302 aexit 162302 exit

軟連結設定格式:

Ln –s 源檔案 目标連結檔案

# ln -s exit bexit

# ls -l

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

注意:軟連結時檔案節點号不一樣;

[root@localhost ~]# ls -i bexit exit

161765 bexit 162302 exit

如果知道一個檔案有多個檔案名(連結檔案)如何查找他的其他檔案名的路徑?

使用ls -i 獲得其節點号,find查找。

[root@localhost ~]# ls -i /etc/sysconfig/network-scripts/ifcfg-eth0

452946 /etc/sysconfig/network-scripts/ifcfg-eth0       #節點号為 452946

[root@localhost ~]# find /etc -inum 452946

/etc/sysconfig/network-scripts/ifcfg-eth0

第2字段: 連結占用的節點

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

該字段檔案占用一個節點,屬于軟連結(符号連結)

如果是目錄,則第2字段表示該目錄所含子目錄的個數

建立空目錄,此目錄的第二字段就是2,表示該目錄下有兩個子目錄。

因為每一個目錄都有一個指向它本身的子目錄"." 和指向它上級目錄的子目錄"..",此預設子目錄是隐藏的。

每次在目錄下建立一個子目錄,該目錄第2字段的值就增1,但是建立一個普通檔案該字段值不增加。

第3字段:檔案(目錄)擁有者

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

該字段表示該檔案擁有者是誰。隻有檔案的擁有者才具有改動檔案屬性的權利。root具有改動任何檔案屬性的權利。對于目錄,隻有擁有該目錄的使用者,或者具有寫權限的使用者才有在目錄下建立檔案的權利。

如果某一使用者被删除,而該使用者家目錄還存在,ls -l 檢視該檔案将顯示一個代表使用者存在前ID号的數字。

建立使用者test,将其加入wang使用者組,su切換:

[root@localhost ~]# useradd test

[root@localhost ~]# usermod -g wang test #建立使用者test,并将其加入到使用者組wang中

[root@localhost ~]# su test

[test@localhost root]$ cd /home/test

[test@localhost ~]$ touch testing

[test@localhost ~]$ ls -l testing

-rw-r--r-- 1 test wang 0 08-03 18:02 testing #最後用ls -l 看到第三字段的檔案擁有者為test

[test@localhost ~]$ su root                          #删除使用者test

[root@localhost ~]# userdel test

[root@localhost ~]# cd /home/test #進入test的家目錄,檢視剛剛建立的檔案testing。

[root@localhost test]# ls -l

總計 4

-rw-r--r-- 1 504 wang 0 08-03 18:02 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修改建立時間 # touch exit

把exit建立時間修改目前時間,檔案還有最後通路時間,最後修改時間等屬性。

可以用ls其它參數顯示出來。

第7字段:檔案名

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

如果是符号連結,會有"->"符号,跟着它指向的檔案名

     本文轉自韓立偉 51CTO部落格,原文連結:http://blog.51cto.com/hanchaohan/786697,如需轉載請自行聯系原作者

繼續閱讀