1. 程式人生 > >linux中的硬連接和軟連接

linux中的硬連接和軟連接

正常 軟連接 art 而是 tle -a 點號 var rwx

linux中的硬連接和軟連接

  • linux中的硬連接和軟連接
    • 背景
    • 連接
    • 硬連接
    • 軟連接
    • example
    • reference

背景

linux中的文件主要分3塊,
- 真正的數據
- 索引節點號(inode index)
- 文件名稱

讀取文件的順序是通過文件名稱。找到相應的inode。然後通過inode找到相應的數據,進行讀取。

連接

當我們須要在不同的文件夾,用到同樣的文件時。我們不須要在每個須要的文件夾下都放一個必須同樣的文件,我們僅僅要在某個固定的文件夾,放上該文件,然後在 其他的文件夾下用ln命令鏈接(link)它就能夠,不必反復的占用磁盤空間。

硬連接

硬連接就是將多個不同的文件名稱指向同一個inode index。這樣通過當中的隨意一個文件名稱。都會訪問到同一份數據。例如以下圖所看到的。文件名稱1,文件名稱2,文件名稱3都會通過同一個inode訪問到同一份數據。


技術分享

軟連接

軟連接相似windows中的快捷方式。它不是直接連到源文件的inode上的,而是一個新的特殊的文件,它記錄了被連的文件名稱3的路徑。

技術分享

example

?  /tmp  ln -s test test1 #symbolic link 
?  /tmp  ln test test2 #hard link
?  /tmp  ls -l test*
6508253
-rw-r--r--@ 2 deshengkong wheel 3423 7 10 20:08 test 6534236 -rw-r--r-- 1 deshengkong wheel 103 7 13 10:22 test.php 6544973 lrwxr-xr-x 1 deshengkong wheel 4 7 13 11:13 test1 -> test # symbolic link 該文件的類型是l(link) 6508253 -rw-r--r--@ 2 deshengkong wheel 3423 7 10 20:08 test2 # hard link 該文件的文件類型是普通文件
? /tmp rm test #delete source file ? /tmp cat test1 #symbolic link file找不到源文件。所以報錯。

cat: test1: No such file or directory ? /tmp cat test2 #hard link file 正常

reference

http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html
http://www.cnblogs.com/joeblackzqq/archive/2011/03/20/1989625.html

linux中的硬連接和軟連接