ln 命令的使用

ln 這是linux中一個非常重要命令。它的功能是爲某一個文件在另外一個位置建立一個同不的鏈接,這個命令最常用的參數是-s,具體用法是:ln -s 源文件 目標文件。
當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然後在其它的目錄下用ln命令鏈接(link)它就可以,不必重複的佔用磁盤空間。例如:ln -s /bin/less /usr/local/bin/less


-s 是代號(symbolic)的意思。
這裏有兩點要注意:

第一,ln命令會保持每一處鏈接文件的同步性,也就是說,不論你改動了哪一處,其它的文件都會發生相同的變化;

第二,ln的鏈接又符號鏈接和硬鏈接兩種,符號鏈接就是ln -s ** **,它只會在你選定的位置上生成一個文件的鏡像,不會佔用磁盤空間,硬鏈接ln ** **,沒有參數-s, 它會在你選定的位置上生成一個和源文件大小相同的文件,無論是符號鏈接還是硬鏈接,文件都保持同步變化。
如果你用ls察看一個目錄時,發現有的文件後面有一個@的符號,那就是一個用ln命令生成的文件,用ls -l命令去察看,就可以看到顯示的link的路徑了。



硬鏈接與符號鏈接的區別在於硬鏈接與原來的文件有相同的i-node即它們是無差別的指向一個存儲數據的空間的索引.
硬鏈接產生的文件與之前的文件名具有相同的意義,而且,由於都是無差別的指向同一個存儲空間,所以對硬鏈接產生的文件進行的操作,實際上都是對於那一個存儲空間進行的操作。
而且,當一個存儲空間,具有幾個硬鏈接時,刪除其中的一個,並不會對存儲空間進行操作,所以其它的硬鏈接不會受到影響。
此種方式,類似於C語言裏的指針,當一個存儲空間裏面有幾個指針指向它時,刪除其中的一個指針並不會帶來存儲空間被回收的操作。

而符號鏈接可以理解爲指向原來的文件的索引的索引.它與原來的文件是兩個不同的文件.所以這樣的話假如存在三個文件的話,a是原文件,b是a的硬鏈接,而c 是a 的符號鏈接.剛不管是那個文件或者目錄的內容改變都會使得其它的文件的內容改變.對於原文件的刪除,則c將變的不可用,而對b卻沒有任何的影響.b,c的刪除不會對任何文件有影響.
注:

1. 對於ln命令默認是建立硬鏈接的.
2. -s不是soft(軟)的意思,而是symbolic(符號)的意思,因此應該是符號鏈接。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章