Linux下的軟連結和硬連結,檔案拷貝的區別
總結如下:
硬連結:在磁碟上有一份內容一樣的檔案產生,但不改變檔案的Inode,也就是與原檔案共用Inode,
軟連結:不在磁碟上有一份內容一樣的檔案產生(),但產生新的Inode,
檔案複製:產生新的檔案內容,並且使用新的Inode.
簡單的說軟連結相當於快捷方式。
-----------------------------------------------------------------------------------------------------------------------
符號連結
存在兩種不同型別的連結,軟連結和硬連結。修改其中一個,硬連線指向的是節點(inode),而軟連線指向的是路徑(path)
軟連結檔案
軟連結又叫符號連結,這個檔案包含了另一個檔案的路徑名。可以是任意檔案或目錄,可以連結不同檔案系統的檔案。和win下的快捷方式差不多。連結檔案甚至可以連結不存在的檔案,這就產生一般稱之為"斷鏈"的問題(或曰“現象"),連結檔案甚至可以迴圈連結自己。類似於程式語言中的遞迴。
命令格式:
程式碼:
ln [-s] source_path target_path
硬連結檔案
info ln 命令告訴您,硬連結是已存在檔案的另一個名字,硬連線的命令是
程式碼:
ln -d existfile newfile
引用:
硬連結檔案有兩個限制
1、不允許給目錄建立硬連結;
2、只有在同一檔案系統中的檔案之間才能建立連結。
對硬連結檔案進行讀寫和刪除操作時候,結果和軟連結相同。但如果我們刪除硬連結檔案的原始檔,硬連結檔案仍然存在,而且保留了願有的內容。這時,系統就“忘記”了它曾經是硬連結檔案。而把他當成一個普通檔案。修改其中一個,與其連線的檔案同時被修改
程式碼:
$umask 022
$ cp /etc/httpd/conf/httpd.conf /usr/sam
原來前面做的試驗,改變了系統預設的umask值,現在改回來為022,
舉個httpd.conf檔案做例 子
程式碼:
$ ln httpd.conf httpd1.conf
$ ln -s httpd.conf httpd2.conf
第一條為硬連結,第二條為軟連結
程式碼:
$ ls -li
程式碼:
總用量 80
1077669 -rw-r--r-- 2 sam adm 34890 10月 31 00:57 httpd1.conf
1077668 lrwxrwxrwx 1 sam adm 10 10月 31 00:58 httpd2.conf ->; httpd.conf
1077669 -rw-r--r-- 2 sam adm 34890 10月 31 00:57 httpd.conf
可以看到,使用ls -li,軟連線只產生了10位元組的快捷而已,硬連線卻實實在在的的拷貝。最前面的inode硬連結和原始檔是一樣的,而軟連結不一樣,具體看一下回復
對http1.conf進行編輯,可以發現httpd.conf也發生了一樣的變化
程式碼:
$ rm httpd.conf
現在刪除連結的原始檔,來比較不同之處
程式碼:
$ ls -l
總用量 44
drw-r--r-- 2 sam adm 4096 10月 30 20:14 file6
-rw-r--r-- 1 sam adm 34890 10月 31 00:57 httpd1.conf
lrwxrwxrwx 1 sam adm 10 10月 31 00:58 httpd2.conf ->; httpd.conf
發現,httpd2.conf實際已經不存在了,是斷鏈,而httpd1.conf變也了普通檔案
----------------------------------------------------------------------------------
主要區別如下:
1.硬連結實際上是為檔案建一個別名,連結檔案和原檔案實際上是同一個檔案。可以通過ls -i來檢視一下,這兩個檔案的inode號是同一個,說明它們是同一個檔案;而軟連結建立的是一個指向,即連結檔案內的內容是指向原檔案的指標,它們是兩個檔案。
2.硬連結只能用於檔案,不能用於目錄;軟連結可以為目錄建連結。
3.硬連結不能跨檔案系統操作。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-592512/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- “軟連結”和“硬連結”的區別
- 硬連結和軟連結的區別
- 簡談linux中軟連結和硬連結的區別Linux
- 軟連結與硬連結的區別
- Linux---檔案、軟連結於硬連結檔案Linux
- linux檔案型別和軟硬連結祥析Linux型別
- Linux軟連結和硬連結Linux
- linux硬連結和軟連結Linux
- linux下軟連結與硬連結Linux
- 5分鐘讓你明白“軟連結”和“硬連結”的區別
- 5 分鐘讓你明白 “軟連結” 和“硬連結”的區別
- Linux(8) —— 硬連結和軟連結Linux
- 軟連線與硬連結的區別,以及如何刪除軟連結
- 硬連結和軟連結
- Linux 軟連結和硬連結簡介Linux
- Linux精講——軟連結和硬連結Linux
- Linux軟連線和硬連結Linux
- ln命令:軟連結與硬連結的區別與應用
- Linux中軟連結和硬連結之間有什麼區別和聯絡?Linux
- 理解 Linux 的硬連結與軟連結Linux
- 軟連結和硬連結詳解
- Linux 硬連結與軟連結(zt)Linux
- linux 軟硬連結Linux
- 在Linux中,什麼是硬連結和軟連結?Linux
- 深入理解硬連結和軟連結 (轉)
- 【linux命令之ln命令詳解(軟連結和硬連結)】Linux
- linux下靜態連結庫和動態連結庫的區別有哪些Linux
- Linux 下的軟連結Linux
- 拷貝連結串列;及糖果分析
- Linux常用基本命令(軟連結與硬連結 )Linux
- 硬連結與軟連結詳解
- 『學了就忘』Linux基礎命令 — 22、Linux中的硬連結和軟連結Linux
- 連結檔案 (硬連線 與 符號連線)符號
- 軟連線、硬連結 和 i節點(inode)
- 動態連結庫和靜態連結庫的區別
- linux目錄和硬連結Linux
- 加油站;及拷貝連結串列分析
- 一文帶你瞭解Linux軟連結與硬連結!Linux