1. 程式人生 > >Linux中的硬連線和軟連線

Linux中的硬連線和軟連線

硬連線:

如果A檔案和B檔案的關係是硬連線的關係。當用戶修改了A檔案的內容,那麼B檔案的內容也會發生更改。如果修改的B檔案,那麼A檔案的內容也會發生更改。

特點:
1、硬連線不限於兩個檔案之間,可以在多個檔案之間進行。ls -l 命令中顯示了檔案的硬連線數
2、不能對目錄做硬體連線
3、不能在不同的檔案系統之間做硬連結(Linux的檔案系統:ext4,xfs等等)
4、所有的硬連線,具備相同的iNode節點號

軟連線:

類似Windows中的快捷方式。為一個原始檔建立一個快捷方式。

1、如果原始檔被刪除了,也沒有辦法使用該快捷方式。一旦以同樣檔名建立了原始檔,連結將繼續指向該檔案的新資料
2、在ls -l 中,軟連結作為一種特殊的檔案型別顯示出來,其第一個字母是l。
3、軟連結的大小是其連結檔案的路徑名中的字元數。

ln命令:用來建立硬連線和軟連線

給file1 建立硬連線

[[email protected] ~]#ln file1 file2

給file1建立軟連線,file2為建立好的軟連線名

[[email protected] ~]# ln -s file1 file2

pwd -P 顯示檔案的實際路徑,而不是軟連線的路徑

[[email protected] ~]# cd /bin/
[[email protected] bin]# pwd
/bin
[[email protected] bin]# pwd -P
/usr/bin

刪除軟連線,要特別注意一個地方,本人為此付出過慘重代價。 如果軟連線,連線到的是一個目錄

正確的刪除方法

[[email protected] ~]#rm -rf ../dir

錯誤的刪除軟連線方法,這樣會把實際目錄中的所有檔案都刪除!

[[email protected] ~]#rm -fr ../dir/

本人曾經在升級MongoDB資料庫的時候,裡面用到了軟連線。我在刪除軟連線的時候,用了錯誤的方法,導致資料庫裡面的內容都被俺給刪了!