軟連接是對某個文件創(chuàng)建的快捷方式霍狰,
當(dāng)實體文件刪除,軟連接將變成無效鏈接,當(dāng)軟連接刪除實體文件并無影響
軟連接和實體文件的i節(jié)點不同
硬鏈接需要root權(quán)限創(chuàng)建,是對文件磁盤i節(jié)點的備份
硬鏈接與實體文件共享一個i節(jié)點型檀,i節(jié)點的鏈接計數(shù) +1,類似于c++里的shared_ptr听盖,
刪除實體文件或者硬鏈接胀溺,文件數(shù)據(jù)并不會刪除,只會講i節(jié)點的鏈接計數(shù) -1皆看,當(dāng)計數(shù)為0的時候才會刪除文件
swing@ubun:~/tmp$ ls -il lsw.txt
1333677 -rw-rw-r-- 1 swing swing 0 2月 24 19:44 lsw.txt
swing@ubun:~/tmp$ sudo ln lsw.txt lsw.hard
[sudo] swing 的密碼:
swing@ubun:~/tmp$ ls -il
1333677 -rw-rw-r-- 2 swing swing 0 2月 24 19:44 lsw.hard
1333677 -rw-rw-r-- 2 swing swing 0 2月 24 19:44 lsw.txt
可以看出lsw.hard 和lsw.txt 的i節(jié)點都是1333677仓坞,鏈接數(shù)變成2
swing@ubun:~/tmp$ ln -s lsw.txt lsw.soft
swing@ubun:~/tmp$ ls -il
1333677 -rw-rw-r-- 2 swing swing 0 2月 24 19:44 lsw.hard
1333676 lrwxrwxrwx 1 swing swing 7 2月 25 09:48 lsw.soft -> lsw.txt
1333677 -rw-rw-r-- 2 swing swing 0 2月 24 19:44 lsw.txt
軟鏈接的i節(jié)點不用,計數(shù)也不會增加腰吟,類型是l无埃,link類型
swing@ubun:~/tmp$ echo "lisiwen debug" > lsw.txt
swing@ubun:~/tmp$ cat lsw.txt
lisiwen debug
swing@ubun:~/tmp$ cat lsw.soft
lisiwen debug
swing@ubun:~/tmp$ cat lsw.hard
lisiwen debug
往實體文件寫數(shù)據(jù),兩個鏈接都能感知到
swing@ubun:~/tmp$ rm lsw.txt
swing@ubun:~/tmp$ ls -il
總用量 140364
1333381 drwxr-xr-x 17 swing swing 4096 1月 25 11:04 ffmpeg
1333538 -rw-r--r-- 1 swing swing 143723485 1月 25 11:04 ffmpeg_src.tar
1333677 -rw-rw-r-- 1 swing swing 14 2月 25 09:52 lsw.hard
1333676 lrwxrwxrwx 1 swing swing 7 2月 25 09:48 lsw.soft -> lsw.txt
swing@ubun:~/tmp$ cat lsw.hard
lisiwen debug
swing@ubun:~/tmp$ cat lsw.soft
cat: lsw.soft: 沒有那個文件或目錄
swing@ubun:~/tmp$
刪除實體文件,軟鏈接失效嫉称,硬鏈接還能正常侦镇,i節(jié)點鏈接計數(shù) -1