ln命令是linux系統中的一個很重要的命令,使用ln命令能夠方便咱們對於文件的管理備份。這個命令的功能是爲某一個文件在另一個位置上創建一個不一樣的連接。ln連接分爲兩種,一種是硬鏈接,一種是軟鏈接。html
硬鏈接
硬鏈接的功能就是爲同一件文件創建多個訪問路徑 。linux磁盤上的全部文件都有一個索引節點號(Innode index),在linux上能夠使用硬鏈接將多個訪問路徑綁定到一個文件上,也就是這些路徑訪問相同的索引節點表示的文件,這樣能夠防止誤刪除重要的文件。既然多個路徑都是能夠訪問該文件,那麼刪除一個文件路徑會不會刪除該文件呢?答案是不會!只用全部連接到該文件的連接都刪除以後纔會真正的刪除該文件。node
軟鏈接
軟鏈接相比較硬鏈接只是構建的時候多了一個參數 -s 。軟鏈接相似於windows中快捷方式,當打開該文件的時候會連接到原來的文件上去。linux
語法
synatax:shell
1.第一種表示給originSourceFile創建一個新的連接文件newLinkFilewindows
2.第二種表示給originSourceFIle創建一個新的連接到目錄DIRECTORYbash
3.第三種和第二種相似,只是參數的位置變反了。code
【opition】參數說明:htm
-f ,--force 強制刪除已有的目標文件blog
-i,--interactive 提示用戶是否須要刪除目標文件索引
-s , --symbolic 建立軟鏈接
-b 在連接時被刪除或者覆蓋的文件進行備份
-t 指定連接文件將要被放置的目錄位置
-T 指定newLinkFile是一個普通文件
-v 顯示全部鏈接文件的名字
實例
root@iZuf64dhkm7u584izpppz6Z:~# vi hello.c root@iZuf64dhkm7u584izpppz6Z:~# ln -s hello.c hello.soft root@iZuf64dhkm7u584izpppz6Z:~# ln hello.c hello.hard root@iZuf64dhkm7u584izpppz6Z:~# ls -ali hello*
顯示結果:
2234290 -rw-r--r-- 2 root root 46 Feb 28 17:33 hello.c 2234290 -rw-r--r-- 2 root root 46 Feb 28 17:33 hello.hard 2234286 lrwxrwxrwx 1 root root 7 Feb 28 18:46 hello.soft -> hello.c
hello.c源文件和hello.hard硬鏈接的innode index相同,而hello.soft使用 ->表示鏈接到hello.c源文件上
2.刪除源文件
root@iZuf64dhkm7u584izpppz6Z:~# rm -rf hello.c
分別查看硬鏈接和軟鏈接:
root@iZuf64dhkm7u584izpppz6Z:~# cat hello.hard #include <stdio.h> int main(){ printf(); } root@iZuf64dhkm7u584izpppz6Z:~# cat hello.soft cat: hello.soft: No such file or directory
刪除源文件以後,硬鏈接依然能夠鏈接到原文件指向的文件。可是軟鏈接已經失效了,沒法鏈接到以前的文件了。
參考文檔