1.概念
硬鏈接:給一個文件創(chuàng)建硬鏈接(hard links)相當(dāng)于給它取了一個別名,文件的節(jié)點(inode)并沒有改變,硬鏈接不占用內(nèi)存空間。
ln [源文件] [鏈接文件]
echo "this is source file" >f1
ln f1 f2 #創(chuàng)建硬鏈接
ln -s f1 f3 #創(chuàng)建軟鏈接
ls -li #-l 查看所有文件,-i 查看文件節(jié)點
rm -rf f2 刪除鏈接文件
軟鏈接:給一個文件創(chuàng)建軟鏈接(symbolic links)相當(dāng)于給它創(chuàng)建了一個快捷方式,這個快捷方式本身也是個文件,有自己的節(jié)點,當(dāng)然也占用一定的磁盤空間。
ln -s [源文件] [鏈接文件]
ls -li
405209676 -rw-r--r--. 2 usrname root 20 Oct 10 20:52 f1
405209676 -rw-r--r--. 2 usrname root 20 Oct 10 20:52 f2
405209665 lrwxrwxrwx. 1 usrname root 2 Oct 10 20:52 f3 -> f1 #第三列的2表示有2個文件名鏈接到405209676這個inode;軟鏈文件的大小是2字節(jié),其實就是f1文件名的大小。
2.應(yīng)用上的相同點
對鏈接文件內(nèi)容作的任何更改都會同步到源文件中,反之亦然。
刪除鏈接文件并不會影響源文件。
3.應(yīng)用上的不同點:
硬鏈接能防止誤刪:刪除源文件,硬鏈文件還在,軟鏈文件則同時被刪除。
硬鏈接文件有兩個限制
1)不允許給目錄創(chuàng)建硬鏈接;
2)只有在同一文件系統(tǒng)中的文件之間才能創(chuàng)建鏈接。
但是創(chuàng)建鏈接有什么用呢?無非就是和copy相比,少占用內(nèi)存;多條路徑防止誤刪;和直接引用相比,省去給出路徑的繁瑣。
參考:
https://www.cnblogs.com/itech/archive/2009/04/10/1433052.html