Linux學習筆記--ln命令(連結命令)
ln:英文名link,連結的意思。
Linux 系統中有軟連結和永久連結兩種特殊的“檔案”。
永久連結特徵:
1) 永久連結檔案跟源檔案擁有相同的i(inode)節點和儲存block塊, 它們可以看作是同一個檔案。2) 可通過i節點進行識別(i節點相同)。3) 連結檔案和源檔案必須在相同的分區,不能跨分區。3) 不能針對目錄建立永久連結。 (這個雖然Linux ln命令協助說明裡說可以用"ln -d"建立目錄的永久連結, 但是本人實測不可行,本人在網上搜尋出來了一段詳細解釋說明, 具體說明請看文章最下邊的"特別說明"。)4) 修改任意一個檔案,另外一個檔案的內容都會改變。5) 當源檔案被刪除時,永久連結檔案還可以正常使用。
軟連結特徵:
1) 軟連結檔案作用跟windows系統的捷徑作用相同。2) 軟連結擁有自己的i節點和儲存block塊, 但是此資料區塊中儲存的資訊是源檔案的i節點和檔案名稱資訊, 並不會儲存實際的檔案資料內容。3) 用"ll"命令查看時,軟連結檔案前面都是"lrwxrwxrwx", 其中第一位的字母"l"即表示此檔案為軟連結檔案, 軟連結檔案的真實許可權取決於源檔案的許可權。4) 修改任意一個檔案,另外一個檔案的內容都會改變。5) 當源檔案被刪除時,軟連結檔案將不能使用。
1. 命令格式:
ln [選項] 源檔案或目錄 目標檔案或目錄
2. 常用選項:
"ln -b" 如果目標目錄中已經有同名的檔案,那麼在覆蓋之前先進行備份"ln -f" 如果目標目錄中已經有同名的檔案,無需提示,直接覆蓋"ln -i" 人機互動,如果目標目錄中已經有同名的檔案,則提示是否進行覆蓋"ln -n" 把軟連結視為一般目錄(說明:範例中我會詳細解釋)"ln -s" 建立軟連結"ln -v" 詳細顯示操作進行的步驟。(v為verbose的意思)
3. 常用範例:
1) 建立一個永久連結檔案。
2) 建立一個軟連結檔案。
3) 建立一個永久連結檔案,如果目標目錄中已經有同名檔案,覆蓋前先進行備份。
<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:sql;">4) 給目錄建立一個軟連結。
5) "ln -n" 命令執行個體說明。
6) 建立軟連結失敗執行個體說明
特別說明:
1) 建立軟連結時,如果軟連結檔案跟源檔案不在同一個目錄,那麼源檔案地址必須為絕對路徑,否則建立出來的軟連結無法使用。2) 不能針對檔案建立永久連結。"linux系統中的硬串連有兩個限制:不能跨越檔案系統和不允許普通使用者對目錄作硬串連。至於第一個限制,很好理解,而第二個就不那麼好理解了。 我們對任何一個目錄用ls -l 命令都可以看到其串連數至少是2,這也說明了系統中是存在硬串連的,而且命令ln -d 也可以讓超級使用者對目錄作硬串連,這些都說明了系統限制對目錄進行硬串連只是一個硬性規定,並不是邏輯上不允許或技術上的不可行。那麼作業系統為什麼要進行限制呢?如果引入了對目錄的硬串連就有可能在目錄中引入迴圈,那麼在目錄遍曆的時候系統就會陷入無限迴圈當中。也許您會說,符號串連不也可以引入迴圈嗎,那麼為什麼不限制目錄的符號串連呢?原因就在於在linux系統中,每個檔案(目錄也是檔案)都對應著一個inode結構,其中inode資料結構中包含了檔案類型(目錄,普通檔案,符號串連檔案等等)的資訊,也就是說作業系統在遍曆目錄時可以判斷出符號串連,既然可以判斷出符號串連當然就可以採取一些措施來防範進入過大的迴圈了,系統在連續遇到8個符號串連後就停止遍曆,這就是為什麼對目錄符號串連不會進入死迴圈的原因了。但是對於硬串連,由於作業系統中採用的資料結構和演算法限制,目前是不能防範這種死迴圈的。" (此解答是在網上找到的,因為無法找到文章的出處以及原作者資訊,故無法標識原作者資訊,如有知情者,可速與我聯絡,我會及時加入作者資訊。謝謝)