軟鏈接與硬鏈接

1. 是什么

  • 鏈接:一種在共享文件和訪問它的用戶的若干目錄項(xiàng)之間建立聯(lián)系的一種方法。
  • 【硬鏈接】(hard link):指通過索引節(jié)點(diǎn)來(lái)進(jìn)行連接抑月,就是一個(gè)文件(不是文件夾)的別名蚊锹,無(wú)論有多少各別名肚医,但它其實(shí)是一個(gè)文件分尸。
    可以這樣理解:

一面墻上有一個(gè)洞乍楚,洞里放著一個(gè)蘋果。從墻的這一面看是這個(gè)蘋果丛楚,從墻的另一面看還是同一個(gè)蘋果
也就是說(shuō)同一塊數(shù)據(jù)但有兩個(gè)不同的名字族壳,讀寫的時(shí)候本質(zhì)上都是修改的同一塊數(shù)據(jù)。

硬鏈接的刪除:

硬鏈接在刪除的時(shí)候只是刪除了一個(gè)名字趣些,只有一塊數(shù)據(jù)的所有名字都刪除了的時(shí)候仿荆,數(shù)據(jù)才會(huì)被刪除。(刪除的時(shí)候相當(dāng)于把墻的這一面糊上坏平,但蘋果本身不動(dòng)拢操,只有兩面都糊上了,你才會(huì)看不到)

  • 【軟鏈接】(又稱符號(hào)鏈接舶替,即 soft link 或 symbolic link):相當(dāng)于我們 Windows 中的快捷方式令境,即如果你軟鏈接一個(gè)目錄,只是一個(gè)目錄的快捷方式到指定位置顾瞪,操作系統(tǒng)找這個(gè)快捷方式會(huì)直接找到真實(shí)目錄下的文件舔庶。
    可以這樣理解:

我聲稱我有一個(gè)蘋果,但是當(dāng)你找我要的時(shí)候陈醒,我對(duì)你說(shuō)惕橙,到某個(gè)建筑物的倉(cāng)庫(kù)就可以拿到那個(gè)蘋果了《危可見我并不真正擁有一個(gè)蘋果弥鹦,我只是擁有“某個(gè)地方有一個(gè)蘋果”這個(gè)信息。但對(duì)于外部的觀察者來(lái)說(shuō)爷辙,這跟我實(shí)際上擁有一個(gè)蘋果并無(wú)差異彬坏。

軟鏈接的刪除:

假設(shè)我死了,不會(huì)影響到原始數(shù)據(jù)犬钢。假設(shè)原始數(shù)據(jù)沒了苍鲜,那我這個(gè)符號(hào)鏈接就變成了一張空頭支票,也就是懸空的符號(hào)鏈接玷犹。

一個(gè)符號(hào)鏈接可以指向一個(gè)不存在的目標(biāo),而硬鏈接就表示肯定有文件存在洒疚。
硬鏈接可以指向文件歹颓,也可以指向目錄∮秃可以跨越任何文件系統(tǒng)巍扛。拷貝刪除原始文件或者鏈接文件乏德,不會(huì)造成相互影響撤奸。

2. 怎么查看

通過ls -l查看吠昭,->后面就是原始地址

$ ls -l
total 6964
lrwxrwxrwx 1 wangdanna wangdanna      48 10月 14 16:07 1.jpg -> /home/wangdanna/Downloads/picture/wallpaper1.jpg
-rw-rw-r-- 2 wangdanna wangdanna    3858 10月  9 02:13 7.jpg
-rw-rw-r-- 1 wangdanna wangdanna   14009 10月  9 01:51 love.jpg
-rw-rw-r-- 1 wangdanna wangdanna   66420 10月  9 16:51 persepolis_6-t2.jpg

如上圖,前面帶有l的就是軟鏈接胧瓜,不帶的則是硬鏈接矢棚,lrwxrwxrwx 1 wangdanna wangdanna 48 10月 14 16:07 1.jpg -> /home/wangdanna/Downloads/picture/wallpaper1.jpg->后面的是真實(shí)路徑

3. 優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn)
    硬連接的作用是允許一個(gè)文件擁有多個(gè)有效路徑名,這樣用戶就可以建立硬連接到重要文件府喳,以防止“誤刪”的功能蒲肋。

比如我將一個(gè)名為test.txt/home/XX/筆記硬鏈接到/home/XX/桌面,
編輯桌面的test.txt時(shí) 筆記下的test.txt已同步更新了
即使不小心把桌面上的test.txt刪了, /home/XX/筆記里的test.txt還在
你可能會(huì)說(shuō)為什么不直接復(fù)制test.txt呢?
復(fù)制要占兩個(gè)大小啊,而且復(fù)制了,你編輯了一個(gè),另一個(gè)它不同步啊

  • 缺點(diǎn)
    軟鏈接文件包含有原文件的路徑信息,所以當(dāng)原文件從一個(gè)目錄下移到其他目錄中钝满,再訪問鏈接文件兜粘,系統(tǒng)就找不到了
    硬鏈接就沒有這個(gè)缺陷,你想怎么移就怎么移

4. 怎么創(chuàng)建

  • 查看
$ ls -l
total 504
-rw-rw-r-- 1 wangdanna wangdanna  91327 10月 11 14:03 github_api.png
-rw-rw-r-- 1 wangdanna wangdanna 413749 10月 12 21:40 html5播放器.png
drwxrwxr-x 2 wangdanna wangdanna   4096 10月  9 17:29 Wallpapers/

  • 創(chuàng)建軟鏈接
 $ ln -s old.file soft.link 
// 可對(duì)不存在的文件創(chuàng)建軟鏈接
 $ ls -l 
total 504
-rw-rw-r-- 1 wangdanna wangdanna  91327 10月 11 14:03 github_api.png
-rw-rw-r-- 1 wangdanna wangdanna 413749 10月 12 21:40 html5播放器.png
lrwxrwxrwx 1 wangdanna wangdanna      8 10月 14 16:28 soft.link -> old.file
drwxrwxr-x 2 wangdanna wangdanna   4096 10月  9 17:29 Wallpapers/

$ cat soft.link 
# 由于被指向的文件不存在弯蚜,此時(shí)的軟鏈接 soft.link 就是死鏈接
cat: soft.link: No such file or directory 

$  echo "This is an original file_A" >> old.file 
// 創(chuàng)建被指向的文件 old.file孔轴,soft.link 恢復(fù)成正常的軟鏈接

$ cat soft.link 
#可看到文件內(nèi)容了
This is an original file_A

5. 加深理解

$ touch f1
#創(chuàng)建一個(gè)測(cè)試文件f1

ln f1 f2
#創(chuàng)建f1的一個(gè)硬連接文件f2

ln -s f1 f3
#創(chuàng)建f1的一個(gè)軟鏈接文件f3

$ ls -li
#-i參數(shù)顯示文件的inode節(jié)點(diǎn)信息
total 0
4083871 -rw-rw-r-- 2 wangdanna wangdanna 0 10月 14 16:37 f1
4083871 -rw-rw-r-- 2 wangdanna wangdanna 0 10月 14 16:37 f2
4083907 lrwxrwxrwx 1 wangdanna wangdanna 2 10月 14 16:37 f3 -> f1

從上面的結(jié)果中可以看出,硬連接文件 f2 與原文件 f1 的inode節(jié)點(diǎn)相同碎捺,均為4083871路鹰,然而軟連接文件的inode節(jié)點(diǎn)不同

$ echo "I am f1 file" >>f1
$ cat f1
I am f1 file
$ cat f2
I am f1 file
$ cat f3
I am f1 file

$ rm -f f1
$ cat f2
I am f1 file
$ cat f3
No such file or directory

通過上面的測(cè)試可以看出:當(dāng)刪除原始文件 f1 后,硬連接 f2 不受影響牵寺,但是軟鏈接 f1 文件無(wú)效

得出結(jié)論
  • 刪除軟鏈接 f3 悍引,對(duì) f1,f2 無(wú)影響帽氓;
  • 刪除硬鏈接 f2趣斤,對(duì) f1,f3 也無(wú)影響黎休;
  • 刪除原文件 f1浓领,對(duì)硬鏈接 f2 沒有影響,導(dǎo)致符號(hào)鏈接 f3 失效势腮;
  • 同時(shí)刪除原文件 f1联贩,硬鏈接 f2,整個(gè)文件會(huì)真正的被刪除捎拯。

6. 特性總結(jié)

【硬鏈接】

  • 文件有相同的 inode 及 data block泪幌;
  • 只能對(duì)已存在的文件進(jìn)行創(chuàng)建;
  • 不能交叉文件系統(tǒng)進(jìn)行硬鏈接的創(chuàng)建署照;
  • 不能對(duì)目錄進(jìn)行創(chuàng)建祸泪,只可對(duì)文件創(chuàng)建;
  • 刪除一個(gè)硬鏈接文件并不影響其他有相同 inode 號(hào)的文件建芙。
    不能對(duì)目錄創(chuàng)建的原因: 硬連接的話没隘,相當(dāng)于鏡像的方式,你創(chuàng)建一個(gè)目錄的硬連接之后禁荸,操作系統(tǒng)需要把這* 個(gè)目錄下所有的文件都要做一次硬連接(復(fù)制一份過去)右蒲,這樣操作系統(tǒng)在訪問這個(gè)鏈接的時(shí)候要不斷去遍歷阀湿,大大增加復(fù)雜度,而且很容易進(jìn)入死循環(huán)」逋現(xiàn)在linux沒有很好支持這個(gè) 所以 不支持陷嘴。詳情見這里這里

【軟鏈接】

  • 軟鏈接有自己的文件屬性及權(quán)限等;
  • 可對(duì)不存在的文件或目錄創(chuàng)建軟鏈接翰撑;
  • 軟鏈接可交叉文件系統(tǒng)罩旋;
  • 軟鏈接可對(duì)文件或目錄創(chuàng)建;
  • 創(chuàng)建軟鏈接時(shí)眶诈,鏈接計(jì)數(shù) i_nlink 不會(huì)增加涨醋;
  • 刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除逝撬,則相關(guān)軟連接被稱為死鏈接(即 dangling link浴骂,若被指向路徑文件被重新創(chuàng)建,死鏈接可恢復(fù)為正常的軟鏈接

參考鏈接https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宪潮,一起剝皮案震驚了整個(gè)濱河市溯警,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌狡相,老刑警劉巖梯轻,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異尽棕,居然都是意外死亡喳挑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門滔悉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)伊诵,“玉大人,你說(shuō)我怎么就攤上這事回官〔苎纾” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵歉提,是天一觀的道長(zhǎng)笛坦。 經(jīng)常有香客問我,道長(zhǎng)苔巨,這世上最難降的妖魔是什么弯屈? 我笑而不...
    開封第一講書人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮恋拷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘厅缺。我一直安慰自己蔬顾,他們只是感情好宴偿,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诀豁,像睡著了一般窄刘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舷胜,一...
    開封第一講書人閱讀 52,549評(píng)論 1 312
  • 那天娩践,我揣著相機(jī)與錄音,去河邊找鬼烹骨。 笑死翻伺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沮焕。 我是一名探鬼主播吨岭,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼峦树!你這毒婦竟也來(lái)了辣辫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤魁巩,失蹤者是張志新(化名)和其女友劉穎急灭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谷遂,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葬馋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了埋凯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片点楼。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖白对,靈堂內(nèi)的尸體忽然破棺而出掠廓,到底是詐尸還是另有隱情,我是刑警寧澤甩恼,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布蟀瞧,位于F島的核電站,受9級(jí)特大地震影響条摸,放射性物質(zhì)發(fā)生泄漏悦污。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一钉蒲、第九天 我趴在偏房一處隱蔽的房頂上張望切端。 院中可真熱鬧,春花似錦顷啼、人聲如沸踏枣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)茵瀑。三九已至间驮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間马昨,已是汗流浹背竞帽。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸿捧,地道東北人屹篓。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像笛谦,于是被迫代替她去往敵國(guó)和親抱虐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1. 是什么 鏈接:一種在共享文件和訪問它的用戶的若干目錄項(xiàng)之間建立聯(lián)系的一種方法饥脑。 【硬鏈接】(hard lin...
    半生不熟_閱讀 2,209評(píng)論 0 5
  • 這兩牽扯到鏈接恳邀,那么先介紹以下鏈接。在文件系統(tǒng)中灶轰,有一種可以把不同的文件相連接到一起的機(jī)制谣沸,這個(gè)機(jī)制叫做鏈接。通俗...
    clickdiff閱讀 369評(píng)論 0 0
  • inode與block block由sector(扇區(qū))組成笋颤,是最小的文件存取單位乳附,用來(lái)存放數(shù)據(jù)。 inode(索...
    我是一只菜鳥呀閱讀 439評(píng)論 0 0
  • 1.Linux鏈接概念 Linux鏈接分兩種伴澄,一種被稱為硬鏈接(Hard Link)赋除,另一種被稱為符號(hào)鏈接(Sym...
    richard520閱讀 278評(píng)論 0 1
  • 1 今天終于找到理由可以去看Y了(其實(shí)想去看他,沒有理由一樣要去非凌,可是我現(xiàn)在沒有沒有理由举农,我真的不可以去Y)到了Y...
    需要了解閱讀 195評(píng)論 0 0