linux鏈接文件
鏈接有兩種方式:硬鏈接和軟鏈接。
(一)軟鏈接
軟鏈接又叫做符號鏈接。基本命令爲:
- ln -s sourcePlace newPlace
軟鏈接的特點:
1.要建立鏈接時,newPlace必須是存在的;而當sourcePlace不存在時建立的連接是一個空鏈接,相當於空指針。空鏈接文件也可以操作,而且如果對空鏈接進行操作,比如 emptyFile是空鏈接,進行vi emptyFile 輸入一些字符後保存,那麼系統會自動生成一個對應emptyFile的sourcePlace,空鏈接會變成一個軟鏈接。
2.newPlace指向sourcePlace,當sourcePlace的內容改變時,newPlace的內容也會改變,反過來也是一樣,當newPlace改變也會導致sourcePlace改變。
3.軟鏈接類似於windows中的快捷方式,但在windows中,改變快捷方式,比如重命名快捷方式,不會導致源文件名字的改變。由於不清楚windows中的原理,所以不明白改變快捷方式的內容是否會引起源文件的改變。而軟鏈接中,對newPlace的改變,是會導致sourcePlace同步改變的。
4.當刪除newPlace 時,不會對sourcePlace產生影響。而刪除sourcePlace時,newPlace會變成一個空鏈接,見第1條後半段。如果此時再創建一個與之前sourcePlace同名的文件,就會重新建立鏈接。但此時sourcePlace和newPlace的內容都爲空。
(二)硬鏈接
硬鏈接相當於是爲一個存在的文件創建一個指針,基本命令爲:
- ln sourceFile newFile
硬鏈接的特點:
1.sourceFile 和newFIle相互影響,同步執行。
2.建立硬鏈接後,sourceFile和newFile的鏈接數都爲2,當刪除sourceFile後,newFile的內容不受影響,但其鏈接數減少一,從鏈接文件變成一個普通文件。
(三)總結硬鏈接和軟鏈接的相同和區別:
相同點:1.鏈接文件newPlace在建立鏈接前都必須爲空。
2.sourcePlace和newPlace的修改都會影響對方。
不同點:
1.軟鏈接可以建立空鏈接,硬鏈接不行。
2.當刪除sourcePlace後,軟鏈接會失效,而硬鏈接只是newPlace的鏈接數減少;刪除newPlace後,對軟鏈接的sourcePlace不會有影響,而硬鏈接的sourcePlace的連接數也會減少。