1、創建軟鏈接
具體用法是:ln -s [源文件] [軟鏈接文件]。
[root@localhost folder]# pwd /tmp/folder [root@localhost folder]# ll total 4 drwxr-x--- 2 root root 4096 Apr 30 16:46 files [root@localhost folder]# ln -s /tmp/folder/files /tmp/folder/files_ln [root@localhost folder]# ll total 4 lrwxrwxrwx 1 root root 17 Apr 30 16:49 files_ln -> /tmp/folder/files drwxr-x--- 2 root root 4096 Apr 30 16:46 files
-s 是代號(symbolic)的意思。這里有兩點要注意:
第一,ln命令會保持每一處鏈接文件的同步性,也就是說,不論你改動了哪一處,其它的文件都會發生相同的變化;
第二,ln的鏈接又軟鏈接 和硬鏈接兩種,軟鏈接就是ln -s ** **,它只會在你選定的位置上生成一個文件的鏡像,不會占用磁盤空間,硬鏈接ln ** **,沒有參數-s, 它會在你選定的位置上生成一個和源文件大小相同的文件。
無論是軟鏈接還是硬鏈接,文件都保持同步變化,都不會將原本的檔案復制一份,只會占用非常少量的磁碟空間。。
【硬連接】
硬連接指通過索引節點來進行連接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。一般這種連接就是硬連接。硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連接。只刪除一個連接並不影響索引節點本身和其它的連接,只有當最后一個連接被刪除后,文件的數據塊及目錄的連接才會被釋放。也就是說,文件真正刪除的條件是與之相關的所有硬連接文件均被刪除。
【軟連接】
另外一種連接稱之為符號連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似於Windows的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。
【兩種鏈接的區別】
硬鏈接文件有兩個限制:
1)、不允許給目錄創建硬鏈接。
2)、只有在同一文件系統中的文件之間才能創建鏈接,而且只有超級用戶才有建立硬鏈接權限。
對硬鏈接文件進行讀寫和刪除操作時候,結果和軟鏈接相同。但如果我們刪除硬鏈接文件的源文件,硬鏈接文件仍然存在,而且保留了原有的內容。其原因是因為對應的文件的索引節點有一個以上的連接。只刪除一個連接並不影響索引節點本身和其它的連接,只有當最后一個連接被刪除后,文件的數據塊及目錄的連接才會被釋放。文件才會被真正刪除。
注:保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(Inode Index即I節點)。
軟鏈接沒有硬鏈接以上的兩個限制,因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網絡對文件進行鏈接。但是軟鏈接的缺點在於:因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統就找不到了,而硬鏈接就沒有這個缺陷,你想怎么移就怎么移;還有它要系統分配額外的空間用於建立新的索引節點和保存原文件的路徑。
【參數說明】
-f : 鏈結時先將與 dist 同檔名的檔案刪除
-d : 允許系統管理者硬鏈結自己的目錄
-i : 在刪除與 dist 同檔名的檔案時先進行詢問
-n : 在進行軟連結時,將 dist 視為一般的檔案
-s : 進行軟鏈結(symbolic link)
-v : 在連結之前顯示其檔名
-b : 將在鏈結時會被覆寫或刪除的檔案進行備份
-S SUFFIX : 將備份的檔案都加上 SUFFIX 的字尾
-V METHOD : 指定備份的方式
--help : 顯示輔助說明
--version : 顯示版本
2、修改軟鏈接
ln –snf [新的源文件或目錄] [軟鏈接文件]
[root@localhost folder]# ll total 4 lrwxrwxrwx 1 root root 17 Apr 30 16:49 files_ln -> /tmp/folder/files drwxr-x--- 2 root root 4096 Apr 30 16:46 files [root@localhost folder]# ln -snf /tmp/folder /tmp/folder/files_ln [root@localhost folder]# ll total 4 drwxr-x--- 2 root root 4096 Apr 30 16:46 files lrwxrwxrwx 1 root root 11 Apr 30 16:59 files_ln -> /tmp/folder
3、刪除軟鏈接
rm –rf ./軟鏈接名稱
rm -rf ./軟鏈接名稱/ (這樣就會把軟鏈接以及軟鏈接指向下的內容刪除)
[root@localhost folder]# ll total 4 lrwxrwxrwx 1 root root 17 Apr 30 16:49 files_ln -> /tmp/folder/files drwxr-x--- 2 root root 4096 Apr 30 16:46 files [root@localhost folder]# rm -rf ./files_ln [root@localhost folder]# ll total 4 drwxr-x--- 2 root root 4096 Apr 30 16:46 files [root@localhost folder]# ll total 4 lrwxrwxrwx 1 root root 17 Apr 30 16:49 files_ln -> /tmp/folder/files drwxr-x--- 2 root root 4096 Apr 30 16:46 files [root@localhost folder]# rm -rf ./files_ln/ [root@localhost folder]# ll total 0
