背景
实际生产环境中,使用第三方的工具,可能这个工具的库很大,很占用磁盘的空间。
想把它搬个位置,但是搬了位置这个工具岂不是找不到这个目录下的文件了,然而修改第三方工具显然不现实。
那么软连接的作用就来了,把文件搬去其他地方,在原来的位置创建软链接,简直完美。
好处: 仅仅是个链接,不占用空间,使用还是照常使用
建立软链接和硬链接的语法
软链接
ln -s 源文件 目标文件
硬链接
ln 源文件 目标文件
源文件:即你要对谁建立链接
什么是软链接和硬链接
软链接
可以理解成快捷方式。它和windows下的快捷方式作用是一样的
硬链接
等于 cp -p 加同步更新
在多用户的操作系统里,你写一个脚本,程序等,没有完成,保存后等下次有时间继续写,但是其他用户有可能将你未写完的东西当成垃圾清理掉,这时,你对你的程序,脚本等做一个硬链接,利用硬链接的同步更新,就可以防止别人误删你的源文件了。建立软链接和硬链接
区别: 1. 软链接 软链接文件的大小和创建时间和源文件不同。 软链接文件只是维持了从软链接到源文件的指向关系(从baishu.soft->baishu可以看出), 不是源文件的内容,大小不一样容易理解。 2. 硬链接 硬链接文件和源文件的大小和创建时间一样。硬链接文件的内容和源文件的内容一模一样, 相当于copy了一份。 那么cp -p的文件是不是就相当于硬链接了呢? 其实不然,对于源文件的内容有修改,硬链接文件会同步更新修改,始终保持和源文件的内容相同, 而复制的文件则不可能做到这一点。 所以,硬链接等于cp -p加同步更新。
删除源文件多软链接和硬链接的影响
和windows一样,删除源文件,快捷方式也用不了。
但是删除源文件,为什么硬链接文件还可以查看呢?
这里要简单说下i节点。
i节点是文件和目录的唯一标识,每个文件和目录必有i节点,不然操作系统就无法识别该文件或系统,就像没有上户口的黑户。
linux操作系统是不识别些字母的,像这些baishu ,baishu.hard操作系统根本不知道是什么玩意。
如图,删除了baishu,只是删除了从922445到baishu的映射关系,不影响它和baishu.hard的映射关系。
此图也解释了硬链接的同步更新,对源文件修改,操作系统只认i节点,
于是操作系统就将修改内容写进所有i节点相同名字不同的文件。
写到这里我突发奇想,如果对硬链接文件进行修改那么源文件会不会同步更新呢?
这里肯定会的,大家可以把硬连接看成 - 对象的指针,如果修改原文件,引用打开同样也被修改了,像 java 内存回收一样,如果所有硬连接不存在,才会被回收删除。
- 本文链接:http://example.com/2020/01/08/linux/link/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。