0%

软链接和硬链接

ln命令

Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

1
ln [参数][源文件或目录][目标文件或目录]

命令参数

必要参数

  • -b 删除,覆盖以前建立的链接
  • -d 允许超级用户制作目录的硬链接
  • -f 强制执行
  • -i 交互模式,文件存在则提示用户是否覆盖
  • -n 把符号链接视为一般目录
  • -s 软链接(符号链接)
  • -v 显示详细的处理过程

选择参数

  • -S “-S<字尾备份字符串> “或 “–suffix=<字尾备份字符串>”
  • -V “-V<备份方式>”或”–version-control=<备份方式>”
  • –help 显示帮助信息
  • –version 显示版本信息

相关概念:

  链接:简单说,链接就是一种文件共享的方式,是POSIX中的概念,主流文件系统都支持链接文件。

  inode:在Linux文件系统中,保存在磁盘的上的文件不管是什么类型,都给他分配一个编号,称为索引节点号inode。

  Linux用ln命令创建软、硬链接。

软链接

  创建软链接:ln -s 源文件 软链接文件

  示例:在/opt目录下创建一个/tmp/test文件的软链接slnfile1

img

img

  总结:

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

    2、软链接里面存放的是源文件的路径,指向源文件

    3、删除源文件,软链接文件依然存在,但是无法通过软链接访问源文件,已经失效,并且白字红底闪烁

    4、软链接和源文件是不通的文件,iNode号不同,文件类型也不同

    5、所有连接文件的权限都是777,而实际权限是由链接指向的源文件权限决定的

硬链接

  创建硬链接:ln 源文件 硬链接文件

  示例:在/opt目录下创建/tmp/test文件的硬链接hlnfile1

img

img

  总结:

    1、具有相同iNode节点号的多个文件,互为硬链接文件

    2、删除硬链接文件或者源文件任意之一,文件实体并未被删除,只有删除了所有硬链接文件和源文件,文件实体才被删除

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

    4、链接文件和源文件属性相同

    5、不能跨分区,不能对目录使用

硬链接和软链接区别

  1、软链接其实就是创建一个新文件,这个文件就是用来指向其他文件的,软链接文件的inode号跟源文件的inod不同

  2、硬链接是不会创建inode号的,他只是在源文件的inode link count域里再增加1,因此硬链接不可以跨文件系统,软链接可以

  3、硬链接是一个文件别名

  4、硬链接不可以对不存在的文件和目录创建,软链接可以