Linux ln命令详解

前言

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

必要参数:

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

选择参数:

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

看张图

也就是说,我们可以在别的目录中去链接常用到的文件,不过我们不需要cp命令,直接用链接命令,可以节省磁盘空间。Linux ln命令详解
这里可以看出,软链接 前面是 l 开头的(link),而硬链接是 - 开头,表示文件,还有自己可以去试试,软链接所有者和所属组具有全部操作的权限,rwxrwxrwx;而硬链接不是。

我们需要知道不管对源文件或者链接文件进行修改内容时,两者都是同步同时性的更改。硬链接文件除了文件名与源文件不一样,其余所有信息都是一样的。类似于 cp 复制操作。但是又和复制不一样,硬链接可以同步更新。

硬链接和软链接区别:
软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
5.有自己的i节点,一旦删除源文件,则链接消失
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
4.删除源文件,无影响

还有,我们 可以将软链接看成一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理(软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。);相反,硬联接为文件开设一个新的目录项,硬链接与文件原有的名字是平权的,可以认为是一个文件有好几个名字并且名字之间是平等的,在Linux看来它们是等价的。由于这个原因,硬链接不能连接两个不同文件系统上的文件。

不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的空间。