對一個文件夾或文件夾建立一個鏈接。使得原始文件或文件夾的內容修改會被反應到鏈接文件或文件中來。反之亦然。這在一些軟件安裝對路徑有要求,可是又不方便移動文件的場景頗有用。node
命令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
命令ln -s orignal_file link_name
get
軟鏈接不光能夠鏈接文件,還能夠鏈接文件夾。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/