Linux下文件属性详解
生活随笔
收集整理的這篇文章主要介紹了
Linux下文件属性详解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
[root@localhost ~]# ls -l
總計(jì) 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行:總計(jì)(total)
Total后面的數(shù)字是指當(dāng)前目錄下所有文件所占用的空間總和。使用ls –lh可查看,也可使用ls –alh查看
第1字段: 文件屬性字段
-rw-r--r-- 1 root root 762 07-29 18:19 exit
文件屬性字段總共有10個(gè)字母組成;第一個(gè)字符表示文件類型。
-表示該文件是一個(gè)普通文件
d表示該文件是一個(gè)目錄,字母"d",是dirtectory(目錄)的縮寫
注意:目錄或者是特殊文件,這個(gè)特殊文件存放其他文件或目錄的相關(guān)信息
l表示該文件是一個(gè)鏈接文件。字母"l"是link(鏈接)的縮寫,類似于windows下的快捷方式
b的表示塊設(shè)備文件(block),一般置于/dev目錄下,設(shè)備文件是普通文件和程序訪問硬件設(shè)備的入口,是很特殊的文件。沒有文件大小,只有一個(gè)主設(shè)備號和一個(gè)輔設(shè)備號。一次傳輸數(shù)據(jù)為一整塊的被稱為塊設(shè)備,如硬盤、光盤等。最小數(shù)據(jù)傳輸單位為一個(gè)數(shù)據(jù)塊(通常一個(gè)數(shù)據(jù)塊的大小為512字節(jié))
c表示該文件是一個(gè)字符設(shè)備文件(character),一般置于/dev目錄下,一次傳輸一個(gè)字節(jié)的設(shè)備被稱為字符設(shè)備,如鍵盤、字符終端等,傳輸數(shù)據(jù)的最小單位為一個(gè)字節(jié)
p表示該文件為命令管道文件。與shell編程有關(guān)的文件
s表示該文件為sock文件。與shell編程有關(guān)的文件
鏈接文件分為硬鏈接或符號鏈接兩種。
硬鏈接:多個(gè)指向同一文件。硬鏈接文件大小完全相同,如有多個(gè)硬鏈接,所鏈接的文件只是一個(gè)文件大小。
同一個(gè)文件所有的文件都是等價(jià)的,操作系統(tǒng)不區(qū)分鏈接創(chuàng)建的先后順序,若一個(gè)文件存在兩個(gè)鏈接,那么除去一個(gè)文件還可以通過另外一個(gè)文件來訪問該文件,也可以除去創(chuàng)建鏈接時(shí)用到的文件,但只要還有一個(gè)鏈接存在,就可通過該連接訪問文件。
符號鏈接(軟鏈接):建立一個(gè)獨(dú)立的文件,這個(gè)文件會讓數(shù)據(jù)的讀取指向它鏈接的文件內(nèi)容。類似windows快捷方式。
第1字段后9個(gè)字母表示該文件或目錄的權(quán)限位。
r表是讀 (Read) 、w表示寫 (Write) 、x表示執(zhí)行 (eXecute)
前三個(gè)表示文件擁有者的權(quán)限,中間三個(gè)表示文件所屬組擁有的權(quán)限,最后三個(gè)表示其他用戶擁有的權(quán)限。
SUID和GUID解析:
s:4;g:2;o:1
4777即rwsrwxrwx。6777即rwsrwsrwx
第2字段:文件硬鏈接數(shù)
-rw-r--r-- 1 root root 762 07-29 18:19 exit
如果一個(gè)文件不是目錄,此時(shí)這一字段表示這個(gè)文件所具有的硬鏈接數(shù)
第2字段的值為1,說明文件exit只有exit這一個(gè)文件名。即只有一個(gè)指向該鏈接的硬鏈接。
如果使用ln,做一個(gè)指向該文件的硬鏈接再查看該文件,該文件的第2字段就會變成2
[root@localhost ~]# ln exit aexit
[root@localhost ~]# ls -l
總計(jì) 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
此時(shí)exit 和aexit稱為互為硬鏈接。同指向一個(gè)文件,無論是修改哪一個(gè)文件,另一個(gè)里也做相應(yīng)的變化,即同一文件的不同文件名
互為硬鏈接的文件具有相同的文件節(jié)點(diǎn)。
[root@localhost ~]# ls -i aexit exit
162302 aexit 162302 exit
軟鏈接設(shè)置格式:
Ln –s 源文件 目標(biāo)鏈接文件
# ln -s exit bexit
# ls -l
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
-rw-r--r-- 1 root root 762 07-29 18:19 exit
注意:軟鏈接時(shí)文件節(jié)點(diǎn)號不一樣;
[root@localhost ~]# ls -i bexit exit
161765 bexit 162302 exit
如果知道一個(gè)文件有多個(gè)文件名(鏈接文件)如何查找他的其他文件名的路徑?
使用ls -i 獲得其節(jié)點(diǎn)號,find查找。
[root@localhost ~]# ls -i /etc/sysconfig/network-scripts/ifcfg-eth0
452946 /etc/sysconfig/network-scripts/ifcfg-eth0 #節(jié)點(diǎn)號為 452946
[root@localhost ~]# find /etc -inum 452946
/etc/sysconfig/network-scripts/ifcfg-eth0
第2字段: 鏈接占用的節(jié)點(diǎn)
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
該字段文件占用一個(gè)節(jié)點(diǎn),屬于軟鏈接(符號鏈接)
如果是目錄,則第2字段表示該目錄所含子目錄的個(gè)數(shù)
新建空目錄,此目錄的第二字段就是2,表示該目錄下有兩個(gè)子目錄。
因?yàn)槊恳粋€(gè)目錄都有一個(gè)指向它本身的子目錄"." 和指向它上級目錄的子目錄"..",此默認(rèn)子目錄是隱藏的。
每次在目錄下新建一個(gè)子目錄,該目錄第2字段的值就增1,但是新建一個(gè)普通文件該字段值不增加。
第3字段:文件(目錄)擁有者
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
該字段表示該文件擁有者是誰。只有文件的擁有者才具有改動(dòng)文件屬性的權(quán)利。root具有改動(dòng)任何文件屬性的權(quán)利。對于目錄,只有擁有該目錄的用戶,或者具有寫權(quán)限的用戶才有在目錄下創(chuàng)建文件的權(quán)利。
如果某一用戶被刪除,而該用戶家目錄還存在,ls -l 查看該文件將顯示一個(gè)代表用戶存在前ID號的數(shù)字。
創(chuàng)建用戶test,將其加入wang用戶組,su切換:
[root@localhost ~]# useradd test
[root@localhost ~]# usermod -g wang test #創(chuàng)建用戶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 #進(jìn)入test的家目錄,查看剛剛創(chuàng)建的文件testing。
[root@localhost test]# ls -l
總計(jì) 4
-rw-r--r-- 1 504 wang 0 08-03 18:02 testing
第三字段變成數(shù)字,此數(shù)字是原用戶test的ID號。因?yàn)槲募到y(tǒng)對每個(gè)文件記錄文件所有者的ID,而非用戶名。
第4字段:文件(目錄)擁有者所在的組
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
一個(gè)用戶可以加入很多個(gè)組,但是其中有一個(gè)是主組,就是顯示在第4字段的名稱。
useradd -g指定該用戶所在的主組,-G指定其他組
Useradd –g 組名 用戶名
第5字段: 文件所占用的空間(以字節(jié)為單位)
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
第5字段表示文件大小,如果是目錄,表示該目錄大小。注意是目錄本身大小,而非目錄及其下面的文件的總大小。
第6字段:文件(目錄)最近訪問(修改)時(shí)間
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
可通過touch修改創(chuàng)建時(shí)間 # touch exit
把exit創(chuàng)建時(shí)間修改當(dāng)前時(shí)間,文件還有最后訪問時(shí)間,最后修改時(shí)間等屬性。
可以用ls其它參數(shù)顯示出來。
第7字段:文件名
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
如果是符號鏈接,會有"->"符號,跟著它指向的文件名
總計(jì) 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行:總計(jì)(total)
Total后面的數(shù)字是指當(dāng)前目錄下所有文件所占用的空間總和。使用ls –lh可查看,也可使用ls –alh查看
第1字段: 文件屬性字段
-rw-r--r-- 1 root root 762 07-29 18:19 exit
文件屬性字段總共有10個(gè)字母組成;第一個(gè)字符表示文件類型。
-表示該文件是一個(gè)普通文件
d表示該文件是一個(gè)目錄,字母"d",是dirtectory(目錄)的縮寫
注意:目錄或者是特殊文件,這個(gè)特殊文件存放其他文件或目錄的相關(guān)信息
l表示該文件是一個(gè)鏈接文件。字母"l"是link(鏈接)的縮寫,類似于windows下的快捷方式
b的表示塊設(shè)備文件(block),一般置于/dev目錄下,設(shè)備文件是普通文件和程序訪問硬件設(shè)備的入口,是很特殊的文件。沒有文件大小,只有一個(gè)主設(shè)備號和一個(gè)輔設(shè)備號。一次傳輸數(shù)據(jù)為一整塊的被稱為塊設(shè)備,如硬盤、光盤等。最小數(shù)據(jù)傳輸單位為一個(gè)數(shù)據(jù)塊(通常一個(gè)數(shù)據(jù)塊的大小為512字節(jié))
c表示該文件是一個(gè)字符設(shè)備文件(character),一般置于/dev目錄下,一次傳輸一個(gè)字節(jié)的設(shè)備被稱為字符設(shè)備,如鍵盤、字符終端等,傳輸數(shù)據(jù)的最小單位為一個(gè)字節(jié)
p表示該文件為命令管道文件。與shell編程有關(guān)的文件
s表示該文件為sock文件。與shell編程有關(guān)的文件
鏈接文件分為硬鏈接或符號鏈接兩種。
硬鏈接:多個(gè)指向同一文件。硬鏈接文件大小完全相同,如有多個(gè)硬鏈接,所鏈接的文件只是一個(gè)文件大小。
同一個(gè)文件所有的文件都是等價(jià)的,操作系統(tǒng)不區(qū)分鏈接創(chuàng)建的先后順序,若一個(gè)文件存在兩個(gè)鏈接,那么除去一個(gè)文件還可以通過另外一個(gè)文件來訪問該文件,也可以除去創(chuàng)建鏈接時(shí)用到的文件,但只要還有一個(gè)鏈接存在,就可通過該連接訪問文件。
符號鏈接(軟鏈接):建立一個(gè)獨(dú)立的文件,這個(gè)文件會讓數(shù)據(jù)的讀取指向它鏈接的文件內(nèi)容。類似windows快捷方式。
第1字段后9個(gè)字母表示該文件或目錄的權(quán)限位。
r表是讀 (Read) 、w表示寫 (Write) 、x表示執(zhí)行 (eXecute)
前三個(gè)表示文件擁有者的權(quán)限,中間三個(gè)表示文件所屬組擁有的權(quán)限,最后三個(gè)表示其他用戶擁有的權(quán)限。
SUID和GUID解析:
s:4;g:2;o:1
4777即rwsrwxrwx。6777即rwsrwsrwx
第2字段:文件硬鏈接數(shù)
-rw-r--r-- 1 root root 762 07-29 18:19 exit
如果一個(gè)文件不是目錄,此時(shí)這一字段表示這個(gè)文件所具有的硬鏈接數(shù)
第2字段的值為1,說明文件exit只有exit這一個(gè)文件名。即只有一個(gè)指向該鏈接的硬鏈接。
如果使用ln,做一個(gè)指向該文件的硬鏈接再查看該文件,該文件的第2字段就會變成2
[root@localhost ~]# ln exit aexit
[root@localhost ~]# ls -l
總計(jì) 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
此時(shí)exit 和aexit稱為互為硬鏈接。同指向一個(gè)文件,無論是修改哪一個(gè)文件,另一個(gè)里也做相應(yīng)的變化,即同一文件的不同文件名
互為硬鏈接的文件具有相同的文件節(jié)點(diǎn)。
[root@localhost ~]# ls -i aexit exit
162302 aexit 162302 exit
軟鏈接設(shè)置格式:
Ln –s 源文件 目標(biāo)鏈接文件
# ln -s exit bexit
# ls -l
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
-rw-r--r-- 1 root root 762 07-29 18:19 exit
注意:軟鏈接時(shí)文件節(jié)點(diǎn)號不一樣;
[root@localhost ~]# ls -i bexit exit
161765 bexit 162302 exit
如果知道一個(gè)文件有多個(gè)文件名(鏈接文件)如何查找他的其他文件名的路徑?
使用ls -i 獲得其節(jié)點(diǎn)號,find查找。
[root@localhost ~]# ls -i /etc/sysconfig/network-scripts/ifcfg-eth0
452946 /etc/sysconfig/network-scripts/ifcfg-eth0 #節(jié)點(diǎn)號為 452946
[root@localhost ~]# find /etc -inum 452946
/etc/sysconfig/network-scripts/ifcfg-eth0
第2字段: 鏈接占用的節(jié)點(diǎn)
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
該字段文件占用一個(gè)節(jié)點(diǎn),屬于軟鏈接(符號鏈接)
如果是目錄,則第2字段表示該目錄所含子目錄的個(gè)數(shù)
新建空目錄,此目錄的第二字段就是2,表示該目錄下有兩個(gè)子目錄。
因?yàn)槊恳粋€(gè)目錄都有一個(gè)指向它本身的子目錄"." 和指向它上級目錄的子目錄"..",此默認(rèn)子目錄是隱藏的。
每次在目錄下新建一個(gè)子目錄,該目錄第2字段的值就增1,但是新建一個(gè)普通文件該字段值不增加。
第3字段:文件(目錄)擁有者
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
該字段表示該文件擁有者是誰。只有文件的擁有者才具有改動(dòng)文件屬性的權(quán)利。root具有改動(dòng)任何文件屬性的權(quán)利。對于目錄,只有擁有該目錄的用戶,或者具有寫權(quán)限的用戶才有在目錄下創(chuàng)建文件的權(quán)利。
如果某一用戶被刪除,而該用戶家目錄還存在,ls -l 查看該文件將顯示一個(gè)代表用戶存在前ID號的數(shù)字。
創(chuàng)建用戶test,將其加入wang用戶組,su切換:
[root@localhost ~]# useradd test
[root@localhost ~]# usermod -g wang test #創(chuàng)建用戶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 #進(jìn)入test的家目錄,查看剛剛創(chuàng)建的文件testing。
[root@localhost test]# ls -l
總計(jì) 4
-rw-r--r-- 1 504 wang 0 08-03 18:02 testing
第三字段變成數(shù)字,此數(shù)字是原用戶test的ID號。因?yàn)槲募到y(tǒng)對每個(gè)文件記錄文件所有者的ID,而非用戶名。
第4字段:文件(目錄)擁有者所在的組
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
一個(gè)用戶可以加入很多個(gè)組,但是其中有一個(gè)是主組,就是顯示在第4字段的名稱。
useradd -g指定該用戶所在的主組,-G指定其他組
Useradd –g 組名 用戶名
第5字段: 文件所占用的空間(以字節(jié)為單位)
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
第5字段表示文件大小,如果是目錄,表示該目錄大小。注意是目錄本身大小,而非目錄及其下面的文件的總大小。
第6字段:文件(目錄)最近訪問(修改)時(shí)間
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
可通過touch修改創(chuàng)建時(shí)間 # touch exit
把exit創(chuàng)建時(shí)間修改當(dāng)前時(shí)間,文件還有最后訪問時(shí)間,最后修改時(shí)間等屬性。
可以用ls其它參數(shù)顯示出來。
第7字段:文件名
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
如果是符號鏈接,會有"->"符號,跟著它指向的文件名
總結(jié)
以上是生活随笔為你收集整理的Linux下文件属性详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 废柴日记之国庆特辑:那些年我们一直分不清
- 下一篇: 夯实Java基础系列10:深入理解Jav