对一个文件夹或文件夹建立一个链接。使得原始文件或文件夹的内容修改会被反应到链接文件或文件中来。反之亦然。这在一些软件安装对路径有要求,可是又不方便移动文件的场景颇有用。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/