Linux下的文件组织方式是每个文件都占用一个inode,inode中存放有文件的权限信息、block信息等,可以理解为索引文件系统,通过inode索引到对应的block,即读取文件。
hard link
hard link其实就是多个文件连接到同一个inode,因此,这两个文件的信息几乎是一模一样的,hard link有以下特点:
1)你将两都中的任何一个删除,文件都不会被删除,你仍然可以通过另一个文件名来读取文件数据;
2)通过任一文件名来修改该文件数据都是一样的结果;
3)不同的文件系统文件组织方式可能存在差异,所以hard link只能在单一的文件系统上进行;
4)不能连接到目录,如果使用hard link来连接目录,连接的数据需要连同被连接的目录下面的所有数据建立连接,复杂度相当大。
5)‘.‘、‘..‘都是hard link
symbolic link
symbolic link和windows下的快捷方式是可以划等号的,symbolic link实质是创建一个独立的文件,它会占用inode和block,只不过这个文件会让数据的读取指向它连接的文件的文件名。
1)如果原文件被删除,则连接文件会无法打开;
2)symbolic link可以连接到不同文件系统,也可以连接到目录;
所以,symbolic link连接方式比hard link使用的要广泛。
命令
ln [-sf] 源文件 目标文件
不加s参数时即为hard link,否则为symbolic link,f参数表示强制,如果目标文件存在,会将目标文件删除后再重新创建。
时间: 2024-12-17 12:19:37