运维人员不仅要熟悉操作系统、服务器、网络等知识,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大家喜欢。
今天我们要讲的是 Ln 命令。
一、简介
ln 命令用于创建文件的链接,这种链接可以分为硬连接(hard_link)和软连接(symbolic_link,也称为符号连接)两种类型。硬连接是一种特殊的文件链接,它允许数据共享但不会消耗额外的磁盘空间;而软链接则是一个指向目标的指针,但不包含任何实际的数据内容。要创建软连接,需要使用`-s`选项。
换句话说:软连接相当于Windows系统中的快捷方式文件,原始文件被移动或删除后,软连接文件也将无法使用;硬连接则是将文件的inode属性块进行了复制,因此把原始文件移动或删除后,硬链接文件依然可以使用。
1.1. 硬连接和软连接的区别
1.1.1 本质区别
硬链接:本质是同一个文件
软链接:本质不是同一个文件
1.1.2. 跨设备区别
硬链接:不支持
软链接:支持
1.1.3. inode区别
硬链接:相同
软链接:不同
1.1.4. 链接数
硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
软链接:创建或删除,链接数不会变化
1.1.5. 文件夹
硬链接:不支持
软链接:支持
1.1.6. 相对路径
硬链接:原始文件相对路径是相对于当前工作目录
软链接:原始文件的相对路径是相对于链接文件的相对路径
1.1.7. 删除源文件
硬链接:只是链接数减一,但链接文件的访问不受影响
软链接:链接文件将无法访问
1.1.8. 文件类型
硬链接:和原文件相同
软链接:链接文件,和原文件无关
1.1.9. 文件大小
硬链接:和原文件相同
软链接:原文件的路径的长度
二、基本用法
语法格式:
$ ln [options] FILE_NAME LINK_NAME
参数选项:
选项 | 描述 |
-s | 对源文件创建软链接 |
-S | 设置备份文件的后缀 |
-b | 为已存在的目标文件创建备份 |
-d | 允许管理员创建目录的硬链接 |
-f | 强制创建链接而不询问 |
-i | 若目标文件已存在,则需要用户二次确认 |
-L | 若目标文件为软链接,找到其对应文件 |
-n | 将指向目录的软链接视为普通文件 |
-P | 若目标文件为软链接,直接链接它自身 |
-t | 设置链接文件存放于哪个目录 |
-v | 显示执行过程详细信息 |
-backup | 备份已存在的文件 |
-help | 显示帮助信息 |
-version | 显示版本信息 |
三、参考示例
3.1. 为指定的源文件创建链接(默认为硬链接形式)
$ ln file1.txt file2.txt
3.2. 为指定的源文件创建链接(设定为软链接形式)
$ ln -s file1.txt file2.txt
3.3. 强制创建文件链接(会覆盖原链接)
$ ln -sf file1.txt file2.txt
3.4. 删除文件链接
$ rm file2.txt
日常中最常用的实际就是上述几个啦。