Linux文件的類(lèi)型
在Linux中文件的類(lèi)型是通過(guò)文件權(quán)限的首位定義的,可以分為以下幾類(lèi)。
1.普通文件
普通文件包括源程序文件、腳本文件、可執(zhí)行程序文件及各種數(shù)據(jù)文件。普通文件的文件類(lèi)型標(biāo)識(shí)位為"-",使用ls命令可以查看文件的類(lèi)型,例如:
- #ls??-l??suple ?
- -rw-r--r--???1?root?root???540?07-23?08:31?suple?
2.目錄文件
目錄實(shí)際上是一種特殊的文件。目錄下可以包含文件和子目錄。目錄文件的類(lèi)型標(biāo)識(shí)位為"d",如下所示:
- #ls??-l??tmp ?
- drwxrwxrwt??21?root?root??4096?07-25?22:49?tmp?
3.套接字文件
套接字(socket)是用來(lái)進(jìn)行網(wǎng)絡(luò)通信的常用方法之一。Linux文件系統(tǒng)可以通過(guò)套接字文件實(shí)現(xiàn)網(wǎng)絡(luò)通信。套接字的文件類(lèi)型標(biāo)識(shí)位為"s",例如:
- #ls??-l??x1 ?
- srwx------??2?root?root??0?07-25?17:49?x1?
4.命名管道
文件系統(tǒng)通過(guò)命名管道文件可以實(shí)現(xiàn)進(jìn)程間的通信。命名管道的文件類(lèi)型標(biāo)識(shí)位為"p",例如:
- #ls??-l??p1 ?
- prwx------??2?root?root??0?07-25?17:59?p1?
5.設(shè)備文件
Linux系統(tǒng)將設(shè)備識(shí)別為特殊的文件進(jìn)行處理。設(shè)備文件可以分為兩類(lèi):字符設(shè)備和塊設(shè)備。字符設(shè)備的文件類(lèi)型標(biāo)識(shí)位為"c",打印機(jī)、鍵盤(pán)等都屬于字符設(shè)備。磁盤(pán)、磁帶等都屬于塊設(shè)備,塊設(shè)備的文件類(lèi)型標(biāo)識(shí)位為"b"。在系統(tǒng)的/dev目錄下存放了大量的設(shè)備文件,例如字符終端tty1的設(shè)備文件為/dev/tty1。使用ls命令可以看到字符設(shè)備的首字符為"c",塊設(shè)備的首字符為"b",如下所示:
- #ls??-l??/dev/tty1 ?
- crw-------??1?root?root?????4,????1?07-25?05:44?tty1 ?
- #ls??-l??/dev/sda1 ?
- brw-r-----??1?root?disk?????8,????1?07-25?05:41?sda1?
6.鏈接文件
為了使用、管理的方便和節(jié)省磁盤(pán)空間,Linux 允許一個(gè)物理文件有一個(gè)以上的邏輯名,即可以為一個(gè)文件創(chuàng)建一個(gè)鏈接文件,用來(lái)表示該文件的另一個(gè)名字。不同的鏈接文件可為之指定不同的訪問(wèn)權(quán)限,從而實(shí)現(xiàn)既可共享,又可安全控制的目的。
Linux文件系統(tǒng)中有兩類(lèi)鏈接文件:一類(lèi)叫做硬鏈接,一類(lèi)叫做符號(hào)鏈接。硬鏈接的文件類(lèi)型標(biāo)識(shí)位與被鏈接的文件相同。不帶參數(shù)使用ln命令可以建立硬鏈接文件,例如對(duì)sysv文件建立硬鏈接的命令如下:
- #?ls??-il??sysv ?
- 390162?-rw-r--r--?1?root?root?0?07-26?00:51?sysv ?
- #?ln??sysv?syslink ?
- #?ls??-il??sysv?slink ?
- 390162?-rw-r--r--?2?root?root?0?07-26?00:51?slink ?
- 390162?-rw-r--r--?2?root?root?0?07-26?00:51?sysv??
從本例中可以看出硬鏈接文件slink與被鏈接的文件sysv指向同一個(gè)i節(jié)點(diǎn)(節(jié)點(diǎn)編號(hào)390162),硬鏈接與被鏈接的文件具有相同的文件類(lèi)型標(biāo)識(shí)位"-",建立硬鏈接后,文件的鏈接數(shù)由1變?yōu)?。
實(shí)際上硬鏈接只是源文件的一個(gè)硬復(fù)制,它們?cè)谀夸浳募械娜肟陧?xiàng)指向的是同一個(gè)i節(jié)點(diǎn)。只有當(dāng)硬鏈接的全部鏈接被刪除時(shí)才能夠釋放此i節(jié)點(diǎn)。用戶(hù)對(duì)這個(gè)文件所做的任何修改,所有的硬鏈接都可以同步看到。硬鏈接的文件必須在同一個(gè)文件系統(tǒng)中,目錄不能建立硬鏈接。
建立符號(hào)連接可以使用帶參數(shù)"-s"的ln命令,符號(hào)鏈接只是指定到真實(shí)文件的訪問(wèn)路徑上,與源文件的i節(jié)點(diǎn)號(hào)不同。如果源文件被刪除,符號(hào)鏈接就被損壞了。符號(hào)鏈接的文件類(lèi)型標(biāo)識(shí)位為"l"。例如為文件ftpuser建立符號(hào)鏈接fuser,命令如下所示:
- #?ls??-il??ftpuser ?
- 390161?-rw-r--r--?1?root?root?0?07-26?01:17?ftpuser ?
- #?ln??-s??ftpuser??fuser ?
- #?ls??-il??ftpuser?fuser ?
- 390161?-rw-r--r--?1?root?root?0?07-26?01:17?ftpuser ?
- 390162?lrwxrwxrwx?1?root?root?7?07-26?01:18?fuser?- > ?ftpuser ?
- #?rm??ftpuser ?
- rm:是否刪除?一般空文件?"ftpuser"??y ?
- #?ls??-il??ftpuser??fuser ?
- ls:?ftpuser:?沒(méi)有那個(gè)文件或目錄 ?
- 390162?lrwxrwxrwx?1?root?root?7?07-26?01:18?fuser?- > ?ftpuser?
可以看到ftpuser與fuser的i節(jié)點(diǎn)號(hào)不同(ftpuser為390161,fuser為390162),fuser的文件類(lèi)型標(biāo)識(shí)位為"l"。源文件ftpuser被刪除后,符號(hào)鏈接文件報(bào)錯(cuò)。
與硬鏈接不同,符號(hào)鏈接可以跨文件系統(tǒng)建立,并且可以指定到目錄。硬鏈接與符號(hào)鏈接的區(qū)別如圖6.3所示。
![]() |
圖6.3? 硬鏈接與符號(hào)鏈接 |
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
