linux軟鏈接、硬鏈接和複製的區別

linux通過ln命令可以進行軟鏈接和硬鏈接的創建,在使用的時候有區別:

1. 硬鏈接
# ln file1 file2

         實現對file1的一個硬連接。不能跨分區,文件夾無效。不同於拷貝(複製)。修改file1,file2會變;修改file2,file1會變。刪除file1後file2任然存在且可用(數據任然爲file1的數據)。

         每對file1增加一個硬連接,系統對file1的對應的硬盤數據節點的連接數加1,其Inode是共用的。當刪除file1或file2等其它硬連接時,對磁盤對應的數據節點連接數減1,只有當連接數爲0時,才真正的刪除數據(inode)。

         硬鏈接的一個好處就是,文件移動到其他位置,仍舊有效,而軟鏈接會出因爲路徑問題而無效。

2. 軟鏈接
# ln -s file1 file2

        類似於windows的快捷方式,實現對file1的一個軟連接,可以跨分區;可以應用到文件夾。修改file1,file2會變;修改file2,file1會變。刪除file1後file2變爲不可用。若強行編輯file2並保存,系統會生成文件file1,內容爲file2編輯的內容。若對file2再建立軟連接file3,實際效果爲file3爲file1的軟連接。

3. 複製

        就不多說了,它是對文件(磁盤存儲空間內容)的一個完全拷貝,文件之間互補影響

從上面的截圖發現,file1和file2完全無法做出區分。很明顯file3是一個符號鏈接。 另外數字2表明有2個連接數。

通過 ls -i選項可以列出inode number (下面的結果顯示file1和file2的inodenumber相同,都爲34998594)

weill@weill-Vbox:test$ ls -il
total 8
34998594 -rw-rw-r-- 2 weill weill 6  2月 10 19:59 file1.txt
34998594 -rw-rw-r-- 2 weill weill 6  2月 10 19:59 file2.txt
34998595 lrwxrwxrwx 1 weill weill 9  2月 10 20:00 file3.txt -> file1.txt

通過 find -inum 可以找出所有相同的inode number的文件。

weill@weill-Vbox:test$ find -inum 34998594
./file2.txt
./file1.txt

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章