歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux系統中ln命令創建軟鏈接與硬鏈接的方法

Linux系統中ln命令創建軟鏈接與硬鏈接的方法

日期:2017/3/1 17:30:05   编辑:Linux技術

Linux 系統下每創建一個文件,系統都會為此文件生成一個 index node 簡稱(inode) ,而每一個文件都包含用戶數據(user data) 與 元數據(metadata)

用戶數據裡記錄了文件的真正內容.

元數據裡記錄的是文件的附加屬性,如 文件大小,創建時間,所有者等,其中 上面提到的 index node 就保存在元數據中.在linux 中文件名並不是文件的唯一標識,index onde 才是唯一標示,系統查找文件也是通過 index node 來查找內容數據塊.

如何查看文件的 index node:

復制代碼代碼如下:
/Users/zhangzhi >ls -i
31615656 AndroidStudioProjects 30836545 go
1152719 Applications 49115578 images
31827389 CNode 13208576 ktsgs.zip
595399 Desktop 44722768 pandoc_demo
595275 Documents 49218456 pgadmin.log
595277 Downloads 15078624 pomelo
7094352 LevelTest 1009499 project
7098493 LevelTest.zip 1011801 qdb
595388 Library 5901898 qdb.zip
595439 Movies 23150187 test
595441 Music 1010768 tmp
595443 Pictures 17956310 trunk
595445 Public 17970255 trunk.zip
32072972 app 41999857 webwork
1009500 code 13208610 游戲配置
22509232 databak

我們看到的前面的數字序列就是 index node

如何理解呢,你可以想象成 windows 操作系統裡的快捷鍵.對同一個文件的訪問提供了多個入口.

指令:

復制代碼代碼如下:
ln [option] link_file source_file

(link_file是待建立鏈接文件的文件,source_file是新創建的鏈接文件)

-f 建立時,將同檔案名刪除.

-i 刪除前進行詢問.

示例:


復制代碼代碼如下:ln -s myfile mylink 建立myfile 文件的軟鏈接 mylink


復制代碼代碼如下:ln myfile mylink 建立myfile 的硬鏈接 mylink

軟鏈接

復制代碼代碼如下:
ln -s myfile mylink
軟鏈接創建後,用戶數據中存儲的並不是文件本身的記錄,而是一個指向 原文件路徑的一個指針.但是它有自己的 index node 序列.

所以 ,軟鏈接其實就是一個新的文件,但是這個文件很特殊,因為他的用戶數據中放的不是文件內容,而是一個指向其他文件的指針.

軟鏈接有下面幾個特點:

1.多個軟鏈接有多個不同的 index node

2.不僅可以對文件創建,還可以對目錄創建軟鏈接

3.軟鏈接可以交叉文件系統

4.刪除軟鏈接 並不會影響原文件,但是原文件被刪除,這個軟鏈接就成了一個死鏈接.

硬鏈接

復制代碼代碼如下:
ln myfile mylink
硬鏈接創建後,用戶數據中存儲的是文件本身記錄,其他他的用戶數據和元數據都和 myfile 一樣,唯一不同的是文件名.

所以硬鏈接就是同一個文件有了多個文件名, 但是多個文件名都指向了 同一個 index node

這樣看來,硬鏈接就是有多個別名的同一個文件.

硬鏈接有下面幾個特別:

1.他們有相同的 index node

2.有相同的數據記錄

3.只能在已經存在文件上創建 硬鏈接

4.刪除其中任何一個,其他硬鏈接不受影響.

5.只能對文件做硬鏈接

Copyright © Linux教程網 All Rights Reserved