Linux軟鏈接與硬鏈接

Linux軟鏈接與硬鏈接

ID:37860561

大?。?07.50 KB

頁數(shù):15頁

時間:2019-06-01

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

《Linux軟鏈接與硬鏈接》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。

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

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

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

4、志等變化文件Linux與其他類UNIX系統(tǒng)一樣并不區(qū)分文件與目錄:目錄是記錄了其他文件名的文件。使用命令mkdir創(chuàng)建目錄時,若期望創(chuàng)建的目錄的名稱與現(xiàn)有的文件名(或目錄名)重復,則會創(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將設備當做文件進行處理,清單2.展示了如何打開設備文件/dev/input/event5并讀取文件內容。文件event5表示一種輸入設備,其可能是鼠標或鍵盤等。查看文件/proc/bus/input/devices可知event5對應設備的類型。設備文件/dev/input/event5使用read()以字符流的方式被讀取。結構體input_event被定義在內核頭文件linux/input.h中。清單2.打開并讀取設備文件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);回頁首硬鏈接與軟鏈接的聯(lián)系與區(qū)別我們知道文件都有文件名與數(shù)據,這在Linux上被分成兩個部分:用戶數(shù)據(userdata)與元數(shù)據(metadata)。用戶數(shù)據,即文件數(shù)據塊(datablock),數(shù)據塊是記錄文件真實內容的地方;而元數(shù)據則是文件的附加屬性,如文件大小、創(chuàng)建時間、所有者等信息。在Linux中,元數(shù)

7、據中的inode號(inode是文件元數(shù)據的一部分但其并不包含文件名,inode號即索引節(jié)點號)才是文件的唯一標識而非文件名。文件名僅是為了方便人們的記憶和使用,系統(tǒng)或程序通過inode號尋找正確的文件數(shù)據塊。圖1.展示了程序通過文件名獲取文件內容的過程。圖1.通過文件名打開文件清單3.移動或重命名文件#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

當前文檔最多預覽五頁,下載文檔查看全文

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

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