1. 程式人生 > >硬鏈接和軟連接的區別以及 ln -s 和mv的區別

硬鏈接和軟連接的區別以及 ln -s 和mv的區別

文件系統 物理 目錄 引用文件 想要 自己 減少 設置 出現

linux鏈接分兩種,一種是硬鏈接(hand link) 一種是軟鏈接 (symbolic link)
ln命令是創建鏈接,默認是創建硬鏈接
ln -s 是創建軟連接

?
?
什麽是硬鏈接
硬鏈接是通過索引節點來進行連接,在linux的文件系統中,保存在磁盤分區中的文件不管是什麽類型都會分配一個節點編號,或者稱之為索引節點。 多個文件名稱指向一個節點編號,一般這種連接是硬鏈接
一個文件有硬鏈接的時候,想要真正刪除。需要吧所有的連接全部刪除,文件的數據庫和目錄的鏈接才會被釋放。
?
?
?

什麽是軟連接
軟連接類似 windows的快捷方式,他實際上是一個特殊文件。當創建軟連接之後 軟連接會有自己的節點編號。且軟連接實際上是一個文本,其中包含源文件的位置信息。

當刪除源文件的話。。軟連接不會消失 但是會報錯。

?
?
??

                                   總結

硬鏈接:
1.創建硬鏈接會增加額外的記錄項以引用文件
2.對應同一個文件系統上一個物理文件
3.具有相同 inode節點(節點編號)的多個文件互為硬鏈接文件
4.硬鏈接文件是源文件的另一個入口
5.可以通過給文件設置硬鏈接來防止重要文件被誤刪
6.創建時鏈接數遞增
7.刪除文件時:
rm刪除硬鏈接時會出現 源文件上遞減鏈接數
文件存在的話。最少有一個鏈接數
當鏈接數為零時,該文件被刪除
8.刪除硬鏈接文件或者刪除源文件任意之一,文件實體並不會被刪除
9.只有刪除源文件和所有對應的硬鏈接文件,文件實體才會被刪除

10.硬鏈接文件是普通文件,可以用rm刪除
11.不能跨分區 進行硬鏈接操作
12.不能對目錄進行硬鏈接
語法:
in filiename [lnkname]

?
?
?

軟連接:

  1. 一個符號鏈接指向另一個文件
    2.ls -l的顯示鏈接名稱和引用的文件
    3.一個符號鏈接的內容是他引用文件的名稱
    4.軟鏈接裏面存放的是源文件的路徑,指向源文件
    5.軟連接失效時 一般是白字紅底閃爍
    6.軟連接和源文件是不同的文件,文件類型不同 inode節點編號也不同
    7.可以對目錄進行 軟連接
    8.可以跨分區
    9.指向的是另一個文件的路徑,其大小為指向的路徑字符串的長度;不增加或減少目標文件的節點編號 inode引用計數
    語法
    is -s filename [linkname]

?
?
?
區別:
原理上,硬鏈接和源文件的inode節點號相同,兩者互為硬鏈接。軟連接和源文件的inode節點號不同,進而指向的block也不同,軟連接block中存放了源文件的路徑名。
實際上,硬鏈接和源文件是同一份文件,而軟連接是獨立的文件,類似於快捷方式,存儲著源文件的位置信息便於指向。
使用限制上,不能對目錄創建硬鏈接,不能對不同文件系統創建硬鏈接,不能對不存在的文件創建硬鏈接;可以對目錄創建軟連接,可以跨文件系統創建軟連接,可以對不存在的文件創建軟連接。

?
?
?
?
······························································································································

                                                  ln -s 和mv的區別

ln -s 只是在目標地方創建個新的文件 這個文件只是軟連接並且有新的節點編號。指向源文件數據不會搬家

而mv不同 mv是cp 和rm的組合 直接吧文件包括數據直接移動。但是節點編號不會改變。並且源地址的數據會被刪除

硬鏈接和軟連接的區別以及 ln -s 和mv的區別