• 技术文章 >运维 >linux运维

    linux中符号链接与硬链接的区别是什么

    长期闲置长期闲置2022-05-09 17:20:10原创251

    区别:1、硬链接时文件重命名或文件移动不会改变链接指向,符号链接时文件重命名或文件移动则使链接断开;2、硬链接只能链接文件,符号链接可以链接文件和文件夹;3、符号链接可以跨不同的文件系统创建,硬链接则不可以跨不同的文件系统创建。

    本教程操作环境:linux7.3系统、Dell G3电脑。

    linux中符号链接与硬链接的区别是什么

    linux存在2众不同类型的链接,软链接和硬链接,修改其中一个,硬链接指向的是节点(inode),软链接指向的是路径(path)

    软连接文件也叫符号连接,这个文件包含了另一个文件的路径名,类似于win下的快捷方式

    区别:

    文件重命名或文件移动

    文件重命名和文件移动对于Linux系统来说都是文件绝对路径的更改。对硬链接来说,文件重命名或文件移动不会改变链接指向,而对软链接来说,文件重命名或文件移动则使链接断开,这时通过软链接修改文件内容时会重新创建一个新的inode,跟原文件名和文件数据块关联。

    文件删除

    rm命令或者nodejs的unlink其实是将inode的链接数减1。对于前文的硬链接,删除test_hard.txt使得inode1的链接数变成1,当链接数变成0时,系统就会释放掉这个inode,之后再创建的新文件就可以使用该inode的inode number了。这时没有inode指向文件数据block,所以文件找不到了。但实际上文件数据还存在硬盘中,所以经常能看到网上有一些帮助恢复误删的文件的工具。软链接inode链接数为1,删除软链接则系统释放该inode。

    链接文件和文件夹

    软链接可以链接文件和文件夹,但硬链接只能链接文件。

    不同文件系统创建链接

    软链接可以跨不同的文件系统创建,但是硬链接不行,因为硬链接是共用一个inode,而不同的文件系统有不同的inode table。

    应用场景

    硬链接

    文件备份:为了防止重要的文件被误删,文件备份是一种好的办法,但拷贝文件会带来磁盘空间的消耗。硬链接能不占用磁盘空间实现文件备份。

    文件共享:多人共同维护同一份文件时,可以通过硬链接的方式,在私人目录里创建硬链接,每个人的修改都能同步到源文件,但又避免某个人误删就丢掉了文件的问题。

    文件分类:不同的文件资源需要分类,比如某个电影即是的分类是外国、悬疑,那我们可以在外国的文件夹和悬疑的文件夹里分别创建硬链接,这样可以避免重复拷贝电影浪费磁盘空间。有人可能说,使用软链接不也可以吗?是的,但不太好。因为一旦源文件移动位置或者重命名,软链接就失效了。

    软链接

    快捷方式:对于路径很深的文件,查找起来不太方便。利用软链接在桌面创建快捷方式,可以迅速打开并编辑文件。

    灵活切换程序版本:对于机器上同时存在多个版本的程序,可以通过更改软链接的指向,从而迅速切换程序版本。这里提到了python版本的切换可以这么做。

    动态库版本管理:不是很懂,具体可以看这里。

    总结

    Linux系统通过inode管理文件,inode存储着文件字节数、文件权限、链接数、数据block位置等信息。

    硬链接与源文件共用inode,除了文件名不同,其他与源文件一样。不能对文件夹创建硬链接,不能对不同的文件系统的文件创建硬链接。

    软链接类似于windows的快捷方式,有独立的inode。可以对文件夹或不同文件系统的文件创建软链接。

    硬链接和软链接修改文件内容都会同步到源文件,因为本质上它们都是指向源文件的数据block。

    相关推荐:《Linux视频教程

    以上就是linux中符号链接与硬链接的区别是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:linux
    上一篇:linux x是什么权限 下一篇:linux怎么安装oracle jdk
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• linux中的rhce是什么• linux devel是什么意思• linux为什么适合做服务器• 怎么查看linux是否支持ipv6• linux中la是什么文件
    1/1

    PHP中文网