鏈接文件:ln

鏈接分為硬鏈接以及符號(hào)鏈接(也可叫做軟鏈接)。
兩種鏈接實(shí)現(xiàn)機(jī)理不同,因此要求與效果也都不同

1. 硬鏈接(Hard Link)

  • 原理簡(jiǎn)介
    a. 每個(gè)文件都會(huì)占用一個(gè) inode,文件內(nèi)容由 indoe 的記錄來(lái)指向
    b. 想要讀取文件的實(shí)際內(nèi)容敦腔,必須要經(jīng)過(guò)目錄所記錄的文件名來(lái)指向到正確的 inode 號(hào)碼荔烧,再通過(guò) inode 記錄的 block 信息得封,找到文件存儲(chǔ)的實(shí)際內(nèi)容
    c. 文件名只與目錄有關(guān)同廉,但是文件的內(nèi)容卻與 indoe 相關(guān)
    => 那么硬鏈接就是多個(gè)文件名關(guān)聯(lián)到同一個(gè) inode 號(hào)碼
    => 簡(jiǎn)單地講仪糖,硬鏈接就是在某個(gè)目錄下新建了一個(gè)文件名柑司,并將該文件名與某個(gè) inode 號(hào)碼關(guān)聯(lián),僅此而已
    =>由于兩個(gè)文件名指向的其實(shí)是同一個(gè)文件乓诽,那么這兩個(gè)文件名除了名字不同帜羊,其他所有屬性、內(nèi)容都一模一樣

  • 查看方式

[root@localhost ~]# ll aaa                      # 注意觀察列表的第二列鸠天,此列展示的是多少個(gè)文件指向與其相同的 inode,此時(shí)該列為‘1’
-rw-r--r--. 1 root root 0 5月  15 06:43 aaa
[root@localhost ~]# ln aaa aaa-hard             # 建立 aaa-hard帐姻,使其指向 aaa 文件的 inode
[root@localhost ~]# ll -i
總用量 0
67914933 -rw-r--r--. 2 root root 0 5月  15 06:43 aaa     
67914933 -rw-r--r--. 2 root root 0 5月  15 06:43 aaa-hard    # 看稠集!兩者使用了相同的 indoe,而且第二列的值變?yōu)榱恕?’
  • 作用
    可能是“安全”吧饥瓷。如果兩個(gè)文件名指向同一個(gè) inode剥纷,刪掉任意一個(gè)文件名,都不影響 inode 及另一個(gè)文件名

  • 限制
    a. 硬鏈接不能跨越文件系統(tǒng)
    原理簡(jiǎn)介部分已經(jīng)說(shuō)明呢铆,硬鏈接的核心是兩個(gè)文件 inode 相同晦鞋。但是不同的文件系統(tǒng)的 inode 幾乎是完全不同的,那么也就不可能跨越文件系統(tǒng)建立硬鏈接棺克。

    b. 硬鏈接僅能作用于文件悠垛,不能作用于目錄
    目錄的硬鏈接不僅僅是目錄之間進(jìn)行硬鏈接,目錄下的子目錄娜谊、子文件都需要進(jìn)行硬鏈接确买,工程浩大、復(fù)雜纱皆。
    所以 Linux 不讓用戶進(jìn)行目錄的硬鏈接湾趾,但她自己其實(shí)已經(jīng)為所有目錄做了硬鏈接。不信派草?我們來(lái)看看搀缠!

[root@localhost ~]# ll -id /root/
67165921 dr-xr-x---. 3 root root 4096 5月  15 06:43 /root/    # 咦?/root/所用的 67165921 竟然鏈接有3個(gè)文件名

[root@localhost ~]# ll -id /root/. /root/.ssh/..
67165921 dr-xr-x---. 3 root root 4096 5月  15 06:43 /root/.               # 一個(gè)是該目錄下的 .
67165921 dr-xr-x---. 3 root root 4096 5月  15 06:43 /root/.ssh/..         # 另一個(gè)是該目錄的子目錄下的 ..

## 可以得出規(guī)律:一個(gè)目錄下的鏈接數(shù)減去1近迁,就等于其下1級(jí)子目錄的個(gè)數(shù)
  • 用法
    ln <so_file> <dst_file>
    如:ln /etc/passwd /root/mima.txt

    ps. <dst_file>不一定必須存在艺普。如果不存在,ln命令會(huì)自動(dòng)新建

2. 符號(hào)鏈接(Symbolic Link)

  • 原理簡(jiǎn)介
    相比硬鏈接钳踊,符號(hào)鏈接就簡(jiǎn)單了許多衷敌。軟鏈接將一個(gè)文件名鏈接至另一個(gè)文件名。那么當(dāng)對(duì)這個(gè)文件名進(jìn)行操作時(shí)拓瞪,實(shí)際上是操作其所軟鏈接的文件名缴罗。其實(shí)就像是 Windows 下的“快捷方式”

  • 特點(diǎn)
    a. 源文件被刪除后,軟鏈接文件會(huì)失效
    b. 不僅能對(duì)文件進(jìn)行軟鏈接祭埂,也能對(duì)目錄進(jìn)行軟鏈接
    c. 可以跨文件系統(tǒng)使用
    d. 軟鏈接文件與源文件是兩個(gè)完全不同的文件面氓,而該文件的大小其實(shí)取決于指定鏈接時(shí)輸入的源文件名字的長(zhǎng)度兵钮,看一下下面的例子

[root@localhost ~]# touch a
[root@localhost ~]# ln -s a a-link-short;ln -s /root/a a-link-long;ll   # 用兩種文件寫法來(lái)做鏈接
總用量 0
-rw-r--r--. 1 root root 0 5月  15 07:30 a
lrwxrwxrwx. 1 root root 7 5月  15 07:31 a-link-long -> /root/a          # 明明是鏈接到同一個(gè)文件,為何文件大小不同舌界?
lrwxrwxrwx. 1 root root 1 5月  15 07:31 a-link-short -> a

## 軟鏈接的文件大小掘譬,主要看指定鏈接時(shí)使用的源文件名字或路徑的長(zhǎng)度
  • 用法
    ln -s <so_file> <dst_file>
    如:ln -s /etc/passwd /root/mima.txt

    ps. <dst_file>不一定必須存在。如果不存在呻拌,ln命令會(huì)自動(dòng)新建

  • 注意點(diǎn)
    a. 如果文件做了軟鏈接葱轩,那么當(dāng)你在對(duì)軟鏈接文件的內(nèi)容進(jìn)行操作時(shí),其實(shí)是在對(duì)源文件進(jìn)行操作
    b. 如果目錄做了軟鏈接藐握,那么當(dāng)你在對(duì)軟鏈接目錄的內(nèi)容(也就是目錄中的文件)進(jìn)行操作時(shí)靴拱,其實(shí)是在對(duì)源目中的文件進(jìn)行操作,所以要切記小心猾普。
    c. 做軟鏈接盡量使用絕對(duì)路徑袜炕,不然會(huì)加大鏈接失效的概率
  • 實(shí)際案例

問(wèn)題
如果某個(gè)分區(qū)快滿了,該分區(qū)中有一些大文件初家,且經(jīng)常被訪問(wèn)偎窘。這時(shí)硬盤上還有一個(gè)較為空閑的分區(qū)。
請(qǐng)問(wèn)如何處理才能夠在緩解容量的同時(shí)不影響用戶的正常使用溜在?

解法
a. 在空閑分區(qū)建立新的目錄陌知;
b. 將大文件 file-1 轉(zhuǎn)移至新建的目錄(推薦使用 rsync,因?yàn)槠渲С衷隽總浞荩?br> c. 在舊目錄中新建與原文件同名的文件(file-1)炕泳,并軟鏈接至真實(shí)的 file-1文件纵诞;

(The End)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市培遵,隨后出現(xiàn)的幾起案子浙芙,更是在濱河造成了極大的恐慌,老刑警劉巖籽腕,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗡呼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡皇耗,警方通過(guò)查閱死者的電腦和手機(jī)南窗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)郎楼,“玉大人万伤,你說(shuō)我怎么就攤上這事∥卦” “怎么了敌买?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)阶界。 經(jīng)常有香客問(wèn)我虹钮,道長(zhǎng)聋庵,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任芙粱,我火速辦了婚禮祭玉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘春畔。我一直安慰自己脱货,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布拐迁。 她就那樣靜靜地躺著蹭劈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪线召。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,246評(píng)論 1 308
  • 那天多矮,我揣著相機(jī)與錄音缓淹,去河邊找鬼。 笑死塔逃,一個(gè)胖子當(dāng)著我的面吹牛讯壶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播湾盗,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼伏蚊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了格粪?” 一聲冷哼從身側(cè)響起躏吊,我...
    開(kāi)封第一講書(shū)人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎帐萎,沒(méi)想到半個(gè)月后比伏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疆导,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年赁项,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澈段。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡悠菜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出败富,到底是詐尸還是另有隱情悔醋,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布囤耳,位于F島的核電站篙顺,受9級(jí)特大地震影響偶芍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜德玫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一匪蟀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宰僧,春花似錦材彪、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至造成,卻和暖如春显熏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晒屎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工喘蟆, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鼓鲁。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓蕴轨,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親骇吭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子橙弱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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