linux创建软硬链接

2016/12/10 posted in  Linux

创建软链接或是硬链接在 linux 中是非常常用的,所以有必要记住掌握

命令

源文件 目标文件

root@localhost ~/demo ln
usage: ln [-Ffhinsv] source_file [target_file]
       ln [-Ffhinsv] source_file ... target_dir
       link source_file target_file

创建软链接

也就是创建一个快捷方式

#创建test.log的一个符号连接文件test1.log
ln -s test.log test1.log      

创建硬链接

#创建test.log的一个硬连接文件test2.log
ln test.log test2.log     

# -i参数显示文件的inode节点信息
ls -li

软硬链接的区别

  • 硬链接文件有两个限制

    • 1)、不允许给目录创建硬链接;
    • 2)、只有在同一文件系统中的文件之间才能创建链接,而且只有超级用户才有建立硬链接权限。
  • 对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。

  • 这时,系统就“忘记”了它曾经是硬链接文件。而把他当成一个普通文件。

  • 那么我们就可以这样理解:硬连接指通过索引节点来进行的连接,其作用是允许一个文件拥有多个有效路径名,能够达到误删除的作用。

  • 其原因是因为对应的文件的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。文件才会被真正删除。

  • 软链接没有硬链接以上的两个限制,因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。

  • 但是软链接的缺点在于:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;

  • 但是硬链接它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径.

注:保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index即I节点)。