linux的硬連接和軟連接node
連接方式有兩種:硬連接和軟連接linux
在Linux的文件系統中,保存在磁盤分區中的文件無論是什麼類型都給它分配一個編號,稱爲索引節點號(Inode Index)。ide
(1)硬連接:多個文件名指向同一索引節點索引
做用:容許一個文件擁有多個有效路徑名,這樣用戶就能夠創建硬鏈接到重要文件,以防止「誤刪」的功能。it
其實一個硬連接就是一個文件的一個別名,只刪除一個鏈接並不影響索引節點自己和其它的鏈接,只有當最後一個鏈接被刪除後,文件的數據塊及目錄的鏈接纔會被釋放。也就是說,文件真正刪除的條件是與之相關的全部硬鏈接文件均被刪除。class
硬連接文件有兩個限制file
1)、不容許給目錄建立硬連接權限
2)、只有在同一文件系統中的文件之間才能建立硬連接數據
ln 命令爲現有文件建立新的硬連接。該命令懂得第一個參數爲現有文件,後面能夠跟一個或者多個額外的硬連接。硬連接能夠處在任何位置上。touch
在/tmp目錄中爲現有的文件newfile.text建立硬連接mewfile-link1.text
[root@localhost ~]# cd /tmp
[root@localhost tmp]# touch newfile.text
[root@localhost tmp]# ln newfile.text /tmp/newfile-link.text
[root@localhost tmp]# ll newfile.text /tmp/newfile-link.text
-rw-r--r--. 2 root root 0 Nov 16 04:04 newfile.text
-rw-r--r--. 2 root root 0 Nov 16 04:04 /tmp/newfile-link.text
即便原來文件刪除,只要有一個硬連接存在,該文件的內容就依然可讀
[root@localhost tmp]# echo 'hello,world' > newfile.text
[root@localhost tmp]# rm -f newfile.text
[root@localhost tmp]# ll /tmp/newfile-link.text
-rw-r--r--. 1 root root 12 Nov 16 04:10 /tmp/newfile-link.text
[root@localhost tmp]# cat /tmp/newfile-link.text
hello,world
(2)軟連接
軟連接又叫符號連接,這個文件包含了另外一個文件的路徑名。其實就是Windows中的快捷方式。
軟鏈接沒有硬連接那麼多的限制
1)軟連接有本身的文件屬性及權限等。
2)可對不存在的文件或目錄建立軟連接。
3)軟連接可交叉文件系統。
4)軟連接可對文件或目錄建立,並且目錄能夠位於不一樣獲得文件系統
5)建立軟連接時,連接計數 i_nlink 不會增長。
6)刪除軟連接並不影響被指向的文件,但若被指向的原文件被刪除,則相關軟鏈接被稱爲死連接(即 dangling link,若被指向路徑文件被從新建立,死連接可恢復爲正常的軟連接)。
ln -s 命令建立軟連接
[root@localhost /]# touch newfile-link2.tetx
[root@localhost /]# ln -s newfile-link2.tetx /tmp/newfile-symlink.text
[root@localhost /]# ll newfile-link2.tetx /tmp/newfile-symlink.text
-rw-r--r--. 1 root root 0 Nov 16 04:19 newfile-link2.tetx
lrwxrwxrwx. 1 root root 18 Nov 16 04:20 /tmp/newfile-symlink.text -> newfile-link2.tetx
當原始文件刪除時,連接文件依然指向該文件,但目標消失。指向缺失的文件的軟連接稱爲「懸掛的軟連接」、
[root@localhost /]# rm -f newfile-link2.tetx
[root@localhost /]# ll /tmp/newfile-symlink.text
lrwxrwxrwx. 1 root root 18 Nov 16 04:20 /tmp/newfile-symlink.text -> newfile-link2.tetx
[root@localhost /]# cat /tmp/newfile-symlink.text
cat: /tmp/newfile-symlink.text: No such file or directory