原文地址:http://www.dutor.net/index.php/2010/07/symbol-hard-links/
Linux/Unix中有兩種連結,永久連結和軟連結,均由ln命令來建立。
ln -s /home/m/.vimrc /media/Elements/115/vimrc
軟連結
軟連結使用ln命令的-s選項建立:
1 |
ln -s source filename #建立source檔案的軟連結target(目的地址) |
軟連結類似於Windows中的捷徑,內部儲存的是源檔案的路徑,路徑可以是相對路徑,也可以是絕對路徑:
123456 |
dutor@dutor-desktop:~$ ln -s gvim.tgz gvimdutor@dutor-desktop:~$ ln -s /home/dutor/gvim.tgz gvim2dutor@dutor-desktop:~$ ll gvim* # alias ll='ls -l'lrwxrwxrwx 1 dutor dutor 8 2010-07-01 20:32 gvim -> gvim.tgzlrwxrwxrwx 1 dutor dutor 20 2010-07-01 20:33 gvim2 -> /home/dutor/gvim.tgz-rw-r--r-- 1 dutor dutor 8.5M 2010-06-29 23:06 gvim.tgz |
軟連結應用十分廣泛。
在檔案系統中多處共用同一個較大檔案時,使用軟連結就可以避免建立多個副本。
維護動態庫檔案的版本時,使用軟連結,在升級庫檔案後,只需修改軟連結的源檔案,而使用該庫的程式則不需要修改。
永久連結
不帶有任何選項的ln命令即可建立永久連結:
1 |
ln source target #建立source檔案的永久連結target |
永久連結建立後,連結檔案與源檔案沒有主次之分,檔案系統中它們都和同一個inode相關聯,即具有相同的inode號:
1234 |
dutor@dutor-desktop:~$ ln gvim.tgz gvimdutor@dutor-desktop:~$ ll -i gvim*1048032 -rw-r--r-- 2 dutor dutor 8.5M 2010-06-29 23:06 gvim # 第3個域代表該檔案的連結數1048032 -rw-r--r-- 2 dutor dutor 8.5M 2010-06-29 23:06 gvim.tgz |
因此,系統不允許使用者為目錄建立硬體連結,否則,分類樹就不再是有向無環的了。只許州官放火,不許百姓點燈,系統卻可以為目錄“建立”永久連結(系統知道自己在做什麼,卻不知使用者會做什麼),那就是.和..分別指向目前的目錄和上級目錄。因此每個目錄的連結數至少是2.
另外,由於永久連結的實現依賴於特定的檔案系統,因此不可以跨檔案系統。而軟連結是基於路徑的,所以只要是掛載在系統分類樹中的檔案或目錄,都可以建立軟連結。
完