Linux中软连接和硬链接

同样是ln命令。加上-s就是软链接。不加就是硬链接,格式为:ln [-s] 被链接文件 链接文件

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

硬连接

硬链接的特点是这样的:

  • 它会在链接文件处创建一个和被链接文件一样大小的文件,类似于国外网站和国内镜像的关系,
  • 硬链接占用的空间和被链接文件一样大(其实就是同一片空间)
  • 修改链接文件和被链接文件中的其中一个,另外一个随之同样发生变化
  • 硬链接的对象不能是目录,也就是说被链接文件不能为目录
  • 硬链接的两个文件是独立的两个引用计数文件,他们共用同一份数据,所以他们的inode节点相同

硬链接的原理:在存储器中只存储了一份数据,而被链接文件和链接文件其实都是对这一份数据的引用,所以这份数据就会有最小为2的引用计数,所以才会删除两个文件中的任意一个,删除的都是引用计数,不会影响这一份数据,而另外的一个引用照样可以访问这份数据。如果另外一个引用也被删除了,那么引用计数就为0,在Linux中,一旦引用计数为0,则认为该数据被删除了,这时数据就会被彻底清空,从这一点看和cp命令还是有点区别的。

软连接

软链接又称为符号链接,需要在ln 命令后面加上-s,效果基本和Win中的快捷方式,特点如下:

  • 软连接的链接文件就是一个基本单元大小的文件,一般为3B,和被链接文件的大小没有关系
  • 软链接的链接文件中存储的是被链接文件的元信息,路径或者inode节点
  • 软连接的连接文件是一个独立的文件,有自己的元信息和inode节点
  • 删除软链接的链接文件,被链接文件不会受到任何影响
  • 删除软链接的被链接文件,链接文件会变成红色,这时打开链接文件会报错,报找不到被链接的文件这种错误

软链接的原理,和硬链接的原理类似,可以比对理解。
转载自

你可能感兴趣的:(linux命令)