linux Link

對一個文件夾或文件夾建立一個鏈接。使得原始文件或文件夾的內容修改會被反應到鏈接文件或文件中來。反之亦然。這在一些軟件安裝對路徑有要求,可是又不方便移動文件的場景頗有用。node

hard link的特色

命令ln orignal_file link_name
hard link只能鏈接文件,不能鏈接文件夾,且不能跨磁盤,跨分區鏈接文件linux

原始文件同link文件共用一個Inode ,所謂Inode是一個文件或文件夾的元數據信息,他存儲了該文件的權限,建立時間等信息,並不存儲文件內容。共用一個inode的特色是,link文件跟原始文件的權限,各類信息如出一轍。而且更改任意一個權限,另外一個也會跟着變化(這不廢話嘛,用的都是同一個inode)
好比咱們建立一個內容爲hello world的helloword.txt文件windows

vincent@DESKTOP-2S8STFD:~/linkTest$ ll
total 0
drwxrwxrwx 1 vincent vincent 4096 Jun  3 22:06 ./
drwxr-xr-x 1 vincent vincent 4096 Jun  3 22:06 ../
-rw-rw-rw- 1 vincent vincent   12 Jun  3 22:06 helloword.txt

建立一個硬連接unix

ln helloword.txt hardlinkTest

而後查看文件列表指針

vincent@DESKTOP-2S8STFD:~/linkTest$ ll
total 0
drwxrwxrwx 1 vincent vincent 4096 Jun  3 22:08 ./
drwxr-xr-x 1 vincent vincent 4096 Jun  3 22:06 ../
-rw-rw-rw- 2 vincent vincent   12 Jun  3 22:06 hardlinkTest
-rw-rw-rw- 2 vincent vincent   12 Jun  3 22:06 helloword.txt

刪除原始文件後,硬連接和其鏈接的文件依然存在,而且可用code

vincent@DESKTOP-2S8STFD:~/linkTest$ rm -rf helloword.txt
vincent@DESKTOP-2S8STFD:~/linkTest$ ls -l
total 0
-rw-rw-rw- 1 vincent vincent 12 Jun  3 22:06 hardlinkTest
vincent@DESKTOP-2S8STFD:~/linkTest$ cat hardlinkTest
hello world

因此硬連接,就像對一個文件加了一個保險,使得只要這個文件上還有一個硬連接,刪除原始文件,僅僅是去掉了一個指針,文件自己仍是存在且可用的htm

soft link的特色

命令ln -s orignal_file link_nameget

軟鏈接不光能夠鏈接文件,還能夠鏈接文件夾。test

軟鏈接同原始文件時各自的Inode。好比咱們建立一個上述文件的軟鏈接後 ln -s helloword.txt softlinktest軟件

vincent@DESKTOP-2S8STFD:~/linkTest$ ll
total 0
drwxrwxrwx 1 vincent vincent 4096 Jun  3 22:14 ./
drwxr-xr-x 1 vincent vincent 4096 Jun  3 22:13 ../
-rw-rw-rw- 1 vincent vincent   12 Jun  3 22:06 hardlinkTest
-rw-rw-rw- 1 vincent vincent   12 Jun  3 22:13 helloword.txt
lrwxrwxrwx 1 vincent vincent   13 Jun  3 22:14 softlinktest -> helloword.txt

軟鏈接的權限信息中,第一個l,指明瞭該文件是一個軟鏈接文件。的權限和修改時間等跟原始文件不相同,由於他們使用不一樣的inode

刪除原始文件。link文件雖存在,將不可用

建立軟鏈接時,最好使用原始文件/文件夾的絕對路徑。這樣拷貝移動軟鏈接,該鏈接依然生效。 若是使用原始文件/文件夾,相對於建立軟鏈接的當前路徑來鏈接的話,移動軟鏈接後,鏈接就不可用

好比上述建立軟鏈接的方式最好改爲

ln -s /home/vincent/linkTest/helloword.txt softlinktest

軟鏈接,更像windows中的快捷方式。稍有不一樣的時,你對鏈接文件的編輯查看,都是在鏈接的當前路徑進行,並不會像windows 快捷方式會跳轉到原始文件的路徑。

參考地址

https://www.computerhope.com/issues/ch001638.htm
https://www.geeksforgeeks.org/soft-hard-links-unixlinux/
https://www.linux.com/topic/desktop/understanding-linux-links/

相關文章
相關標籤/搜索