Linux中软链接和硬链接的区别

命令坞
命令坞
命令坞
95
文章
2
评论
2020-06-0323:00:37来源:Linux中国 评论 215 1191字

Linux中软链接和硬链接的区别

链接Link是一种快捷访问机制,它通过一个文件指向原始文件或目录的方式实现快捷访问,同时还记录了原始文件或目录的一些信息。

链接允许多个不同文件对同一个文件进行引用。

什么是软链接

符号链接Symbolic Link(symlink),又称软链接Soft Link,是一种特殊的文件,它指向 Linux 系统上的另一个文件或目录。

这和 Windows 系统中的快捷方式有点类似,链接文件中记录的只是原始文件的路径,并不记录原始文件的内容。

符号链接通常用于对库文件进行链接,也常用于链接日志文件和网络文件系统Network File System(NFS)上共享的目录。

什么是硬链接

硬链接是原始文件的一个镜像副本。创建硬链接后,如果把原始文件删除,链接文件也不会受到影响,因为此时原始文件和链接文件互为镜像副本。

为什么要创建链接文件而不直接复制文件呢?

当你需要将同一个文件保存在多个不同位置,而且还要保持持续更新的时候,硬链接的重要性就体现出来了。

如果你只是单纯把文件复制到另一个位置,那么另一个位置的文件只会保存着复制那一刻的文件内容,后续也不会跟随着原始文件持续更新。

而使用硬链接时,各个镜像副本的文件内容都会同时更新。

软链接和硬链接的区别

下表列出了软链接和硬链接之间的区别。

# 软链接 硬链接
1 软链接类似于 Windows 系统中的快捷方式 硬链接是原始文件的一个镜像副本
2 软链接又称符号链接 硬链接没有别名
3 链接中任何一个文件发生改变,都会同步到连接中的其它文件 和软链接一样
4 软链接可以跨文件系统进行创建 硬链接不可以跨文件系统进行创建
5 软链接可以指向文件或目录 硬链接只能指向文件
6 链接文件和原始文件之间的 inode 和文件权限不完全一致 链接文件和原始文件的 inode 和文件权限完全一致
7 链接文件只记录原始文件的路径,不记录原始文件的内容 链接文件记录了原始文件的内容
8 如果原始文件被移除,软链接就会因为指向不存在的文件而失效。这被称为“挂起链接hanging link 即使原始文件被移除,链接文件也不受影响。
9 通过 ln -s <原始文件> <链接文件> 命令创建软链接 通过 ln <原始文件> <链接文件> 命令创建硬链接
10 软链接文件的文件权限中有一个特殊标记 l 硬链接文件没有特殊标记
11 通过 find / -type l 命令可以查找软链接文件 通过 find / -samefile <原始文件> 命令可以查找硬链接文件
12 通过 symlinks <目录> 命令可以查找失效的软链接 硬链接不存在失效链接

via: https://www.2daygeek.com/difference-between-soft-link-vs-hard-link-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:HankChow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出,命令坞 整理发布

命令坞
Linux Mint 20 发布前一窥 最新资讯

Linux Mint 20 发布前一窥

Ubuntu 20.04 LTS 版本发布了。这对 Linux Mint 用户来说也是一个好消息。一个新的 Ubuntu LTS 版本意味着新的 Linux Mint 主要版本也将很快随之出现。 为什...
使用 AppImage 进行 Linux 软件包管理 分享

使用 AppImage 进行 Linux 软件包管理

AppImage 在自足的环境中分发应用, 它适用于任何 Linux 发行版。 管理 Linux 机器(尤其是远程机器)的一个重要分就是管理和安装软件。当本地应用程序出现问题时,或者文件系统上的某些文...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: