2020/12/20

Hardlink & Symlink 各自的困境

Hardlink 


pros

即使原檔改變了位址(被移到別的資料夾),link端依然可以開啟檔案

更新文件內容也會反應在link端

原檔被刪除,link端還會在,有點類似備份的效果


cons

但如果原檔被覆蓋,link端不會連動,所以會產生兩份檔案

原位址: 新檔

 link 端: 舊檔



Symlink


pros

如果原檔被覆蓋,link端也會跟著刷新

原位址: 新檔

 link 端: 指向原位址的新檔


cons

只要原檔稍微改變位置(例如移到外面一層資料夾),link端會直接死掉, 而且不能重新指定路徑。唯一的解法是把原檔放回原位,或是重新產生一個symlink (舊的直接作廢)

symlink只要稍微改變位置、改資料夾名稱都會死掉,而且不能重新指定路徑。唯一的解法是對symlink產生symlink,然後再貼到想要的資料夾, 而這個方法一次只能處理一個symlink......

我不確定是不是bug,但此現象已經嚴重影響到symlink的實用性,現階段symlink等於只比捷徑好那麼一點點點  


結語

hardlink的確有照著他的設計理念在走,例如原檔無論怎樣被誤刪或覆蓋都還是能夠從link端找到


問題在於symlink太脆弱,理論上它應該要有基本的更新功能,至少也該知道自己被移動到哪

裡。現況是只要原檔或link端有一邊被移動過,他就會直接死掉且無法補救(無法重新指定路徑)