链接的概念

什么是硬链接?

什么是软链接?

软链接和硬链接_Linux

创建硬链接 ls 源 目标文件

创建软链接 ls -s 源 目标文件(目标文件不能事先存在)




硬链接知识总结:

1、inode节点号相同的两个或多个文件互为硬链接

2、删除硬链接文件或者删除源文件,文件实体并未被删除

3、只有硬链接和源文件都被删除,文件才被删除

4、当所有的硬链接文及源文件都被删除时,再存放新数据占用空间或磁盘fsck检查的时候,删除的数据文件的空间被系统收回

5、硬链接是文件的另一个入口

6、可以通过给文件设置硬链接,防止重要的文件被删除

7、创建硬链接 ln 源 目标

8、可用rm命令删除硬链接

9、当硬链接的数量为0时,文件被删除了

/zmg和xwj.txt互为硬链接文件,两个文件的inode节点号相同

[root@xwj ~]# ll -i /zmg xwj.txt

655375 -rw-r--r-- 2 root root 41 Sep 20  2018 xwj.txt

655375 -rw-r--r-- 2 root root 41 Sep 20  2018 /zmg


删掉源文件,使用硬链接依然可以查看文件,inode节点数量减一

[root@xwj ~]# rm -f xwj.txt

[root@xwj ~]# cat /zmg

bj1

bj2

bj3

bj4

bj5

bj6

bj7

bj8

bj9

bj10

[root@xwj ~]# ll /zmg

-rw-r--r-- 1 root root 41 Sep 20  2018 /zmg

[root@xwj ~]#




软链接知识总结:

1、软链接相当于Windows的快捷方式

2、软链接block存放的数据内容是源文件的路径

3、软链接和源文件的inode节点号不相同

4、删除软链接的源文件,文件就被删除了




有关文件的链接小结:

可以给文件创建软链接,也可以给文件创建硬链接


有关目录的链接小结:

1、不能给目录创建硬链接,只能给文件创建硬链接

[root@xwj ~]# mkdir xwj

[root@xwj ~]# ln -s xwj/ soft

[root@xwj ~]# ln xwj/ hard

ln: `xwj/': hard link not allowed for directory

[root@xwj ~]#

2、目录的硬链接不能跨越文件系统

3、每个目录下面都有一个硬链接 “.”,当前目录的上一个目录的硬链接“..”




面试题:

Linux下通过mkdir命令创建一个新目录 /xwj/zmg,/xwj/zmg的硬链接数是多少?(答案:2),如果再在zmg下创建一个目录test,/xwj/zmg的硬链接数是多少?(答案:3)

[root@xwj ~]# ls -ld /xwj/zmg

drwxr-xr-x 2 root root 4096 Sep  6 20:37 /xwj/zmg

 

[root@xwj ~]# mkdir /xwj/zmg/test

[root@xwj ~]# ls -ld /xwj/zmg    

drwxr-xr-x 3 root root 4096 Sep  6 20:37 /xwj/zmg


硬链接数为什么是3

1、/xwj/zmg本身的inode

2、/xwj/zmg/.

3、/xwj/zmg/test/..

 

[root@xwj ~]# ls -ild /xwj/zmg

393218 drwxr-xr-x 3 root root 4096 Sep  6 20:37 /xwj/zmg

[root@xwj ~]# ls -ild /xwj/zmg/.

393218 drwxr-xr-x 3 root root 4096 Sep  6 20:37 /xwj/zmg/.

[root@xwj ~]# ls -ild /xwj/zmg/test/..

393218 drwxr-xr-x 3 root root 4096 Sep  6 20:37 /xwj/zmg/test/..