今天加班,看到部署線上環境的時候他們使用了ln命令,有點想法,覺得還不錯,之前一直認爲這東西沒啥用,發現在線上部署的時候,使用一個軟連接,就不需要修改過多的文件或配置文件,同時保證線上程序出問題的時候迴歸也方便通過直接修改軟連接進行回滾。
PS:注意 假如有一個軟連接 ==>softlink->/user/root/local/xxx 那麼在rm的時候如果 rm sotflink/會刪除目錄下的東西 而不是這個單純的軟連
1語法
ln (選項)(參數)2使用
ln [-sf] 源文件 【目標文件】
源文件最好是絕對路徑,要不就是相對目標路徑的相對路徑.
無參數標識硬鏈接
ln 源文件 這樣會在當前目錄下生成一個與源文件同名的硬鏈接
ln 源文件 目標文件 會在指定目錄生成源文件的硬鏈接
ln -f 目標存在則刪除目標在創建
-s symbolic符號鏈接
ln -s 源文件 【目標文件 】(行爲同上 )
~類別
ln有2中,1中是類似Windows快捷方式功能的文件的軟連接;另一種是使用iNode連接產生新的文件硬鏈接。
前提:
文件目錄的inode (文件目錄)
文件的inode(文件本身)
它們是2個東西,只是看起來像一個而已。
硬鏈接:
~1.每個文件佔用一個inode,文件內容有inode的記錄來指向。(inode可以記錄文件權限屬性讀寫日期,使用li -li 可以看到文件的inode)
~2.文件值與目錄有關,,內容與inode有關,硬鏈接是多個文件對應到同一個inode,也就是說在某個目錄下一個文件名連接到某個inode號碼的關鍵記錄。(文件系統本身也是通過inode進行記錄的)
~3.好處安全,刪除任意一個硬鏈接,還可以通過另外的文件名進行訪問,同樣無論通過那個文件名訪問的都是同一個文件
~4.硬連接只能硬鏈接到文件,而不能連接到文件夾,軟連接可以
~5.硬連接不會消耗磁盤的空間與inode的數目,至是在某個目錄下的block中多寫了一個關聯數據而已。
硬鏈接的限制:
~1.不能誇文件系統。
~2.不能連接目錄。
軟連接:
快捷方式。。。軟連接指向的是文件目錄的inode,通過文件目錄的inode記錄找到文件的inode
另外如果用ln -fs 一個已經存在的軟連接就會在這個軟連接下創建你將要創建的軟連接而不是刪掉這個軟連接在單獨創建軟連接。
瞎猜:基本可以通過文件inode可以得知,文件刪除只是修改了文件目錄的inode指向的某個block中的數據,文件真實數據其實是存在的,而硬鏈接刪除一個另一個還可以訪問的主要原因就在於,有多個文件記錄指向了這個文件的inode,只要inode文件完整的,那麼block就是完整的,文件也是完整的