在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

硬鏈接與軟鏈接的創(chuàng)建過程詳解

5RJg_mcuworld ? 2017-12-11 14:26 ? 次閱讀

Linux 系統(tǒng)中有軟鏈接和硬鏈接兩種特殊的“文件”。

軟鏈接可以看作是Windows中的快捷方式,可以讓你快速鏈接到目標檔案或目錄。

硬鏈接則透過文件系統(tǒng)的inode來產(chǎn)生新檔名,而不是產(chǎn)生新檔案。

創(chuàng)建方法都很簡單:

軟鏈接(符號鏈接) ln -s source target

硬鏈接 (實體鏈接)ln source target

inode

要解釋清楚兩者的區(qū)別和聯(lián)系需要先說清楚 linux 文件系統(tǒng)中的 inode 這個東西。當劃分磁盤分區(qū)并格式化的時候,整個分區(qū)會被劃分為兩個部分,即inode區(qū)和data block(實際數(shù)據(jù)放置在數(shù)據(jù)區(qū)域中)這個inode即是(目錄、檔案)文件在一個文件系統(tǒng)中的唯一標識,需要訪問這個文件的時候必須先找到并讀取這個 文件的 inode。 Inode 里面存儲了文件的很多重要參數(shù),其中唯一標識稱作 Inumber, 其他信息還有創(chuàng)建時間(ctime)、修改時間(mtime) 、文件大小、屬主、歸屬的用戶組、讀寫權(quán)限、數(shù)據(jù)所在block號等信息。

通常會根據(jù)分區(qū)的用途來安排inode的數(shù)量(這是另外一個話題了),比如文件數(shù)量很多而文件都很小,則需要調(diào)增inode較大,以便能索引全部文件。否則將會出現(xiàn)這個分區(qū)并沒有寫滿而無法寫入任何文件的情況。

目錄文件與檔案文件

目錄文件:記錄該目錄下的文件名

檔案文件:記錄實際文件數(shù)據(jù)

inode本身并不記錄文件名,文件名記錄在目錄文件的block當中,所以新增、刪除、更改文件名與目錄的W權(quán)限有關(guān)。因此當我們要讀某個檔案時,就務必經(jīng)過其目錄的inode和block,然后才能夠找到待讀取檔案的inode號,最終才會讀到正確的檔案block內(nèi)的數(shù)據(jù)。系統(tǒng)是通過索引節(jié)點(而不是文件名)來定位每一個文件。

目錄inode(滿足權(quán)限?) => 目錄block => 檔案inode(滿足權(quán)限?) => 檔案block

硬鏈接

多個檔名對應同一個inode,硬鏈接只是在某個目錄下新增一筆檔名鏈 接到某個inode號碼的關(guān)聯(lián)記錄而已。如果將上圖中任何一個檔名刪除,檔案的inode與block都還存在,依然還可以通過另一個檔名來讀取正確的檔 案數(shù)據(jù)。此外,不論用哪一個檔名來編輯,最終的結(jié)果都會寫入相同的inode和block中,因此均能進行數(shù)據(jù)的修改。

軟連接

軟連接就是建立一個獨立的文件,而這個文件會讓數(shù)據(jù)的讀取指向它link的那個檔案的檔名,由于只是作為指向的動作,所以當來源檔案被刪除之后,軟連接的檔案無法開啟,因為找不到原始檔名。連結(jié)檔的內(nèi)容只有檔名,根據(jù)檔名鏈接到正確的目錄進一步取得目標檔案的inode,最終就能夠讀取到正確的數(shù)據(jù)。如果目標檔案的原始檔名被刪除了那么整個環(huán)節(jié)就進行不下去了。

下面用一個實例來說明硬鏈接和軟鏈接。

現(xiàn)在目錄下有兩個文件,一個名為AAA,一個名為BBB。引用$ ls -il963922 -rw-r--r-- 1 ocean ocean 92 2007-05-18 15:46 AAA963923 -rw-r--r-- 1 ocean ocean 95 2007-05-18 15:46 BBB

首先先做一個AAA的硬鏈接。引用$ ln AAA AAAhard$ls -il963922 -rw-r--r-- 2 ocean ocean 92 2007-05-18 15:46 AAA963922 -rw-r--r-- 2 ocean ocean 92 2007-05-18 15:46 AAAhard963923 -rw-r--r-- 1 ocean ocean 95 2007-05-18 15:46 BBB

這里我們注意在創(chuàng)建鏈接前,AAA顯示的鏈接數(shù)目為1,創(chuàng)建鏈接后1.AAA和AAAhard的鏈接數(shù)目都變?yōu)?。2.AAA和AAAhard的inode號是一樣的,都是963922。3.AAA和AAAhard顯示的文件大小也是一樣,都是92B。

可見進行了ln命令的操作結(jié)果:AAA和AAAhard是同一個文件的兩個名字, 它們具有同樣的索引節(jié)點號和文件屬性,建立文件AAA的硬鏈接,就是為 AAA的文件索引節(jié)點在當前目錄上建立一個新指針。你可以刪除其中任何一個,如rm AAA,每次只會刪除一個指針,鏈接數(shù)同時減一,只有將所有指向文件內(nèi)容的指針,也即鏈接數(shù)減為0時,內(nèi)核才會把文件內(nèi)容從磁盤上刪除。

盡管硬鏈接節(jié)省空間,也是Linux系統(tǒng)整合文件系統(tǒng)的傳統(tǒng)方式,但是存在一些不足之處:1.不允許給目錄創(chuàng)建硬鏈接。2.不可以在不同文件系統(tǒng)的文件間建立鏈接。因為 inode 是這個文件在當前分區(qū)中的索引值,是相對于這個分區(qū)的,當然不能跨越文件系統(tǒng)了。

接著我們做一個指向BBB的軟鏈接,軟鏈接克服了硬鏈接的不足,沒有任何文件系統(tǒng)的限制,任何用戶可以創(chuàng)建指向目錄的符號鏈接。因而現(xiàn)在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網(wǎng)絡對文件進行鏈接。引用$ ln -s BBB BBBsoft$ ls -il總用量 0963922 -rw-r--r-- 2 ocean ocean 92 2007-05-18 15:46 AAA963922 -rw-r--r-- 2 ocean ocean 92 2007-05-18 15:46 AAAhard963923 -rw-r--r-- 1 ocean ocean 95 2007-05-18 15:46 BBB963924 lrwxrwxrwx 1 ocean ocean 3 2007-05-18 15:47 BBBsoft -> BBB

從上面鏈接后的結(jié)果可以看出來軟鏈接與硬鏈接,區(qū)別不僅僅是在概念上,在實現(xiàn)上也是完全不同的。

區(qū)別:1.硬鏈接原文件/鏈接文件公用一個inode號,說明他們是同一個文件,而軟鏈接原文件/鏈接文件擁有不同的inode號,表明他們是兩個不同的文件;2.在文件屬性上軟鏈接明確寫出了是鏈接文件,而硬鏈接沒有寫出來,因為在本質(zhì)上硬鏈接文件和原文件是完全平等關(guān)系;3.鏈接數(shù)目是不一樣的,軟鏈接的鏈接數(shù)目不會增加;4.文件大小是不一樣的,硬鏈接文件顯示的大小是跟原文件是一樣的。而這里軟鏈接顯示的大小與原文件就不同了,BBB大小是95B,而BBBsoft是3B。因為BBB共有3個字符

5.軟鏈接沒有任何文件系統(tǒng)的限制,任何用戶可以創(chuàng)建指向目錄的符號鏈接

總之,建立軟鏈接就是建立了一個新文件。當訪問鏈接文件時,系統(tǒng)就會發(fā)現(xiàn)他是個鏈接文件,它讀取鏈接文件找到真正要訪問的文件。

當然軟鏈接也有硬鏈接沒有的缺點:因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統(tǒng)就找不到了,而硬鏈接就沒有這個缺陷,你想怎么移就怎么移;還有它要系統(tǒng)分配額外的空間用于建立新的索引節(jié)點和保存原文件的路徑。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11310

    瀏覽量

    209616
  • 軟鏈接
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    2228
  • 硬鏈接
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    2062

原文標題:Linux文件系統(tǒng)的硬鏈接與軟鏈接

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    一文弄懂Linux鏈接鏈接

    在Linux系統(tǒng)下,有兩種鏈接文件:一種是鏈接(Hard Link);另一種是鏈接,也稱為符號鏈接
    發(fā)表于 10-21 14:26 ?1352次閱讀

    Linux中的鏈接的區(qū)別

    源文件同步。   而鏈接類似于拷貝,但是卻擁有同步更新的功能,再此我們可以驗證。   首先在/test目錄下創(chuàng)建文件link   (1) 分別穿件link的連接文件和
    發(fā)表于 02-04 16:34

    Linux文件系統(tǒng)的鏈接鏈接

    創(chuàng)建方法都很簡單:1. 鏈接(符號鏈接) ln -ssourcetarget 2. 3. 鏈接
    發(fā)表于 12-06 10:55

    Linux文件系統(tǒng)的鏈接鏈接

    創(chuàng)建方法都很簡單:1.鏈接(符號鏈接) ln -ssourcetarget2.3.鏈接
    發(fā)表于 12-06 13:34

    【Linux基礎】Linux鏈接簡介

    添加一個鏈接,文件的鏈接數(shù)就加1。  鏈接文件有兩個限制  1)、不允許給目錄創(chuàng)建
    發(fā)表于 09-20 15:47

    【Linux基礎】Linux鏈接簡介

    的優(yōu)點:  鏈接克服了鏈接的不足,沒有任何文件系統(tǒng)的限制,任何用戶可以創(chuàng)建指向目錄的符號鏈接
    發(fā)表于 09-20 15:50

    linux下鏈接鏈接的區(qū)別

    在linux系統(tǒng)中,鏈接分兩種 :一種被稱為鏈接(Hard Link),另一種被稱為符號鏈接鏈接
    發(fā)表于 11-15 16:26

    嵌入式開發(fā)的鏈接鏈接有什么不同嗎

    為了搞懂這二者關(guān)系,我在網(wǎng)上搜集了不少的資料,特意整理一番。1、鏈接鏈接實際上是為文件建一個別名,鏈接文件和原文件實際上是同一個文件。
    發(fā)表于 12-21 06:00

    鏈接鏈接的區(qū)別在哪

    鏈接鏈接的區(qū)別  鏈接(hard link):A是B的
    發(fā)表于 12-21 07:21

    你知道Linux連接和鏈接

    Linux鏈接分兩種,一種被稱為鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。默認情況下,ln命令產(chǎn)生硬鏈接
    發(fā)表于 04-25 18:00 ?1688次閱讀

    需要了解Linux的鏈接鏈接

    鏈接鏈接是 Linux 文件系統(tǒng)中的一個重要概念,其涉及文件系統(tǒng)中的索引節(jié)點 (index node 又稱 inode),而索引節(jié)點對象是 Linux 虛擬文件系統(tǒng) (VFS)
    發(fā)表于 04-28 17:01 ?787次閱讀
    需要了解Linux的<b class='flag-5'>硬</b><b class='flag-5'>鏈接</b>與<b class='flag-5'>軟</b><b class='flag-5'>鏈接</b>

    ln 連接與鏈接兩者有什么區(qū)別

    ln命令可以生成鏈接鏈接,也可叫做符號鏈接和實體鏈接
    發(fā)表于 11-12 14:35 ?4135次閱讀

    Linux中的鏈接鏈接都用在哪些場合?

    最近,看到很多文章都在介紹 Linux 中的文件系統(tǒng),其中就包括:inode 節(jié)點、鏈接鏈接等重要的概念。 于是就有小伙伴私信問我:這些概念我都懂,但是我能利用他們來完成什么工作
    的頭像 發(fā)表于 06-21 16:33 ?1680次閱讀

    鏈接PK鏈接

    鏈接PK鏈接
    的頭像 發(fā)表于 10-12 18:16 ?1167次閱讀

    鏈接鏈接的區(qū)別

    鏈接又叫符號鏈接,和原文件不是一個文件,類似Windows的快捷方式,如果原始文件被刪除,所有指向它的符號鏈接也就都被破壞了
    的頭像 發(fā)表于 04-19 10:09 ?1220次閱讀
    <b class='flag-5'>軟</b><b class='flag-5'>鏈接</b>與<b class='flag-5'>硬</b><b class='flag-5'>鏈接</b>的區(qū)別
    主站蜘蛛池模板: 欧美专区欧美吧| 久久精品国产免费高清| 精品久久久久久久免费加勒比| 天天摸天天操天天爽| 性色成人网| 2021国产精品| 欧美最猛黑人xxxx黑人猛交黄| 黄色午夜网站| 日本不卡免费一区| 国产香蕉视频在线| 成人黄网大全在线观看| 日本黄页网址| 在线视频 亚洲| 天天狠天天透| 国产精品久久久福利| 视频免费观看网址| 国产精品免费看久久久香蕉| 欧美在线黄| 国产一区在线mmai| 四虎影视在线观看| 免费的两性视频网站| 成 人色 网 站999| 复古毛片| 午夜毛片视频高清不卡免费| 久久综合九色| avtom影院永久转四虎入口| 欧美成人全部免费观看1314色| 夜夜嘿视频免费看| 亚洲成人网在线| 欧美成人性色| 在线色色视频| 国产传媒在线观看视频免费观看| 中文字幕不卡一区| 天天色综合色| 国产主播精品在线| 国产一区二卡三区四区| 精品视频一区二区三区四区五区| 97人人人人| 国产午夜精品福利| 视频在线观看一区二区| 四虎影视国产精品|