Linux軟鏈接與硬鏈接

Linux軟鏈接與硬鏈接

ID:37860561

大?。?07.50 KB

頁(yè)數(shù):15頁(yè)

時(shí)間:2019-06-01

Linux軟鏈接與硬鏈接_第1頁(yè)
Linux軟鏈接與硬鏈接_第2頁(yè)
Linux軟鏈接與硬鏈接_第3頁(yè)
Linux軟鏈接與硬鏈接_第4頁(yè)
Linux軟鏈接與硬鏈接_第5頁(yè)
資源描述:

《Linux軟鏈接與硬鏈接》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、理解Linux的硬鏈接與軟鏈接從inode了解Linux文件系統(tǒng)硬鏈接與軟鏈接是Linux文件系統(tǒng)中的一個(gè)重要概念,其涉及文件系統(tǒng)中的索引節(jié)點(diǎn)(indexnode又稱inode),而索引節(jié)點(diǎn)對(duì)象是Linux虛擬文件系統(tǒng)(VFS)的四個(gè)基本概念之一。通過(guò)剖析硬鏈接與軟鏈接的聯(lián)系與區(qū)別,我們可更好的了解Linux中VFS這一通用文件模型。并讓Linux普通用戶和系統(tǒng)管理員正確使用硬鏈接與軟鏈接,幫助文件系統(tǒng)開(kāi)發(fā)者獲取inode的相關(guān)知識(shí)。Linux的文件與目錄現(xiàn)代操作系統(tǒng)為解決信息能獨(dú)立于進(jìn)程之外被長(zhǎng)期存儲(chǔ)引入了文件,文件作為進(jìn)程創(chuàng)建信息的邏輯單元可被多個(gè)進(jìn)程并

2、發(fā)使用。在UNIX系統(tǒng)中,操作系統(tǒng)為磁盤(pán)上的文本與圖像、鼠標(biāo)與鍵盤(pán)等輸入設(shè)備及網(wǎng)絡(luò)交互等I/O操作設(shè)計(jì)了一組通用API,使他們被處理時(shí)均可統(tǒng)一使用字節(jié)流方式。換言之,UNIX系統(tǒng)中除進(jìn)程之外的一切皆是文件,而Linux保持了這一特性。為了便于文件的管理,Linux還引入了目錄(有時(shí)亦被稱為文件夾)這一概念。目錄使文件可被分類管理,且目錄的引入使Linux的文件系統(tǒng)形成一個(gè)層級(jí)結(jié)構(gòu)的目錄樹(shù)。清單1.所示的是普通Linux系統(tǒng)的頂層目錄結(jié)構(gòu),其中/dev是存放了設(shè)備相關(guān)文件的目錄。清單1.Linux系統(tǒng)的頂層目錄結(jié)構(gòu)/根目錄 ├──bin存放用戶二進(jìn)制文件 ├─

3、─boot存放內(nèi)核引導(dǎo)配置文件 ├──dev存放設(shè)備文件 ├──etc存放系統(tǒng)配置文件 ├──home用戶主目錄 ├──lib動(dòng)態(tài)共享庫(kù) ├──lost+found文件系統(tǒng)恢復(fù)時(shí)的恢復(fù)文件 ├──media可卸載存儲(chǔ)介質(zhì)掛載點(diǎn) ├──mnt文件系統(tǒng)臨時(shí)掛載點(diǎn) ├──opt附加的應(yīng)用程序包 ├──proc系統(tǒng)內(nèi)存的映射目錄,提供內(nèi)核與進(jìn)程信息 ├──rootroot用戶主目錄 ├──sbin存放系統(tǒng)二進(jìn)制文件 ├──srv存放服務(wù)相關(guān)數(shù)據(jù) ├──syssys虛擬文件系統(tǒng)掛載點(diǎn) ├──tmp存放臨時(shí)文件 ├──usr存放用戶應(yīng)用程序 └──var存放郵件、系統(tǒng)日

4、志等變化文件Linux與其他類UNIX系統(tǒng)一樣并不區(qū)分文件與目錄:目錄是記錄了其他文件名的文件。使用命令mkdir創(chuàng)建目錄時(shí),若期望創(chuàng)建的目錄的名稱與現(xiàn)有的文件名(或目錄名)重復(fù),則會(huì)創(chuàng)建失敗。#ls-F/usr/bin/zi* /usr/bin/zip*/usr/bin/zipgrep*/usr/bin/zipnote* /usr/bin/zipcloak*/usr/bin/zipinfo*/usr/bin/zipsplit* #mkdir-p/usr/bin/zip mkdir:cannotcreatedirectory`/usr/bin/zip':F

5、ileexistsLinux將設(shè)備當(dāng)做文件進(jìn)行處理,清單2.展示了如何打開(kāi)設(shè)備文件/dev/input/event5并讀取文件內(nèi)容。文件event5表示一種輸入設(shè)備,其可能是鼠標(biāo)或鍵盤(pán)等。查看文件/proc/bus/input/devices可知event5對(duì)應(yīng)設(shè)備的類型。設(shè)備文件/dev/input/event5使用read()以字符流的方式被讀取。結(jié)構(gòu)體input_event被定義在內(nèi)核頭文件linux/input.h中。清單2.打開(kāi)并讀取設(shè)備文件intfd; structinput_eventie; fd=open("/dev/input/event5

6、",O_RDONLY); read(fd,&ie,sizeof(structinput_event)); printf("type=%dcode=%dvalue=%d", ie.type,ie.code,ie.value); close(fd);回頁(yè)首硬鏈接與軟鏈接的聯(lián)系與區(qū)別我們知道文件都有文件名與數(shù)據(jù),這在Linux上被分成兩個(gè)部分:用戶數(shù)據(jù)(userdata)與元數(shù)據(jù)(metadata)。用戶數(shù)據(jù),即文件數(shù)據(jù)塊(datablock),數(shù)據(jù)塊是記錄文件真實(shí)內(nèi)容的地方;而元數(shù)據(jù)則是文件的附加屬性,如文件大小、創(chuàng)建時(shí)間、所有者等信息。在Linux中,元數(shù)

7、據(jù)中的inode號(hào)(inode是文件元數(shù)據(jù)的一部分但其并不包含文件名,inode號(hào)即索引節(jié)點(diǎn)號(hào))才是文件的唯一標(biāo)識(shí)而非文件名。文件名僅是為了方便人們的記憶和使用,系統(tǒng)或程序通過(guò)inode號(hào)尋找正確的文件數(shù)據(jù)塊。圖1.展示了程序通過(guò)文件名獲取文件內(nèi)容的過(guò)程。圖1.通過(guò)文件名打開(kāi)文件清單3.移動(dòng)或重命名文件#stat/home/harris/source/glibc-2.16.0.tar.xz File:`/home/harris/source/glibc-2.16.0.tar.xz' Size:9990512Blocks:19520IOBlock:4096re

8、gularfile Device:807h/2055

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。