Linux學習筆記 5 鏈結命令ln

2021-08-07 08:15:52 字數 2825 閱讀 1261

把原檔案生成乙個鏈結的目標檔案,分為軟連線和硬鏈結。

具有相同的i節點和儲存block塊。(當使用者去搜尋乙個檔案時,會先去查檔案索引表,找到儲存位置,然後再去硬碟裡這些位置的block塊拿出資料塊返回給使用者。)硬鏈結的檔案具有相同的i節點號,那麼在檔案索引表中找到的就是同一行,記錄的儲存位置也必然是一樣的,取出的資料自然也相同。所以硬鏈結的檔案可以視為同乙個檔案。

硬鏈結相當於乙個檔案的兩個不同接入點,刪掉了乙個檔案,也可以通過與之硬鏈結的另乙個檔案(實際上是同乙個檔案,只是名字不同)來訪問資訊。

不能跨分割槽,不能針對目錄設定硬鏈結。

硬鏈結過於隱蔽(只能通過i節點號分辨),而且有很多限制,容易出錯,不推薦使用。

類似於windows中的快捷方式。軟鏈結有自己的i節點和blcok塊,但block塊中只儲存原檔案的檔名和i節點號,並沒有實際的檔案資料(相當於指向檔案索引表中的原檔案那一行)。

軟鏈結檔案的十位檔案許可權碼一定是lrwxrwxrwx,其中第一位是」l」表示是軟鏈結檔案。實際上軟鏈結的許可權要被原檔案來限制。

由於修改是針對檔案儲存的那些資訊而言的,所以修改任意檔案(即從任一接入點訪問檔案資訊資源),另乙個都改變(因為找到的還是這塊資源)。但由於軟鏈結先要找到檔案索引表中的原檔案,再以此去找儲存位置,所以刪除原檔案,軟鏈結檔案是不可用的。

(詞彙:link)

ln

[-s]

[原檔案]

[目標檔案]

*建立硬鏈結

[root@bogon ~]# ln /root/anaconda-ks.cfg /tmp/lzh.hard

[root@bogon ~]# ll

總用量 44

-rw-------. 2 root root 1392

8月 2218:

22 anaconda-ks.cfg

-rw-r--r--. 1 root root 27016

8月 2218:

22 install.log

-rw-r--r--. 1 root root 7572

8月 2218:

20 install.log.syslog

[root@bogon ~]# ll /tmp/

總用量 4

-rw-------. 2 root root 1392

8月 2218:

22 lzh.hard

-rw-------. 1 root root 0

8月 2218:

12 yum.log

可以看到它(們)的引用次數變成了2,屬性都是一樣的,如果修改了乙個檔案中的資料,另乙個也會改變。

*檢視i節點號以分辨是否是硬鏈結

[root@bogon ~]# ls -i /root/anaconda-ks.cfg /tmp/lzh.hard 

528194 /root/anaconda-ks.cfg

528194 /tmp/lzh.hard

可以看到它們的i節點號一樣,是硬鏈結。

*建立並修改軟鏈結內容去看原檔案

[root@bogon ~]# touch /tmp/sb1

[root@bogon ~]# ln -s /tmp/sb1 /tmp/sb2.soft

[root@bogon ~]# ll /tmp/

總用量 0

-rw-r--r--. 1 root root 0

8月 24 09:

04 sb1

lrwxrwxrwx. 1 root root 8

8月 24 09:

05 sb2.soft -> /tmp/sb1

-rw-------. 1 root root 0

8月 2218:

12 yum.log

[root@bogon ~]# echo 1234 >> /tmp/sb2.soft

[root@bogon ~]# cat /tmp/sb1

1234

軟鏈結正常時高亮效果是這樣的。

*刪除原檔案再去看軟鏈結

[root@bogon ~]# rm /tmp/sb1

rm:是否刪除普通檔案 "/tmp/sb1"?y

[root@bogon ~]# ll /tmp/

總用量 0

lrwxrwxrwx. 1 root root 8

8月 24 09:

05 sb2.soft -> /tmp/sb1

-rw-------. 1 root root 0

8月 2218:

12 yum.log

**上看不出來,實際上高亮效果會變成閃爍報錯的,如下。

cat: /tmp/sb2.soft: 沒有那個檔案或目錄

Linux學習筆記 鏈結命令

ln 建立鏈結 ln root xx.x tmp aa.a 建立了名為aa.a的xx,x的硬鏈結檔案,aa.a可以省略,則視為源檔名 1.擁有相同的i節點和儲存block塊,相當於同乙個檔案 2.可以通過i節點識別 3.不能跨分割槽 4.不能針對目錄使用 1.類似於windows快捷方式 2.軟鏈結...

linux學習筆記三 鏈結命令

鏈結命令 ln link 華麗的分割線 ln又有軟鏈結和硬鏈結 硬鏈結特徵 不建議建立硬鏈結 1.擁有相同的i節點和儲存block塊,可以看做是同乙個檔案 2.可以通過i節點識別 3.不能垮分割槽 4.不能針對目錄使用 軟連線的特徵 1.類似windows快捷方式 2.軟連線擁有自己的i節點和blo...

linux靜態鏈結學習筆記

對於我這位初學者而言,鏈結 linking 這個名詞聽著既熟悉又陌生。我知道基本上每一次執行都會包含鏈結操作,但又不知道鏈結具體又是如何做到的。所以我想理清一下這個內容。鏈結 linking 是將各種 和資料片段收集並組合成為乙個單一檔案的過程,這個檔案可被載入 複製 到記憶體並執行。鏈結可以執行於...