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