Linux中的连接文件,类似于windows中的快捷方式,可以让你快速连接到目标文件。
连接文件分为两种:
-hard link
-synbolic link
hard link
在Linux中,每个文件都会占用一个inode,换句话说,inode可以看成一个文件的标志,它包含文件的很多信息,例如权限、创建时间、最近修改时间、对应的block。而hard link的含义就是两个文件对应一个相同的inode,也就是说这两个文件除了文件名不相同,其他信息都是相同的。所以简单的说,
hard link只是在某个目录下新建一个文件名,作为连接到某一已知文件的inode的关联记录而已。
具体命令为
[root@www ~]# ln 目标路径 连接路径 <==创建hard link的命令
hard link的特点有以下几点:
hard link通过两个及以上的文件名连接到一个实际文件,最大的好处就是安全,即删除其中的一个,也可以从其他文件名连接到此文件;
hard link只是增加了一个关联数据,并没有新增inode,也不会小号block;
不能跨文件系统;
不能连接到文件夹;
symbolic link
相比于hard link,symbolic更像windows下的快捷方式,最简单的,windows下的文件删除后,它的快捷方式就打不开了,linux下的symbolic也是一样。
symbolic link就是创建一个独立的文件,会让数据的读取只想它连接的那个文件名。
具体命令为:
[root@www ~]# ln -s 目标路径 连接路径 <==创建symbolic link的命令
相比hard link,symbolic link的特点主要有:
symbolic link是连接到原有文件的,所以对两个文件中的任意改动保存后都会改动原始数据;
symbolic link是新建的一个独立的文件,所以会占用inode,也会占用block;
新增目录时,新增目录的link为2,上层目录的link数+1,因为./即原目录;
总的来说,hard link的局限性较大,而symbolic link的应用比较广泛,多用于几个地方共享一个目录,或者版本管理。