ln软硬链接

发布时间 2023-11-13 16:48:31作者: 惠恒博

ln命令来自英文单词“link”的缩写,中文译为“链接”,其功能是用于为某个文件在另外一个位置建立同步的链接。Linux系统中的链接文件有两种形式,一种是硬链接(hard link),另一种是软链接(symbolic link)。软链接相当于Windows系统中的快捷方式文件,原始文件被移动或删除后,软链接文件也将无法使用,而硬链接则是通过将文件的inode属性块进行了复制 ,因此把原始文件移动或删除后,硬链接文件依然可以使用。

常用参数

-b:为已存在的目标文件创建备份

-d:允许管理员创建目录的硬链接

-f:强制创建链接而不询问

-i:若目标文件已存在,则需要用户二次确认

-L:若目标文件为软链接时,找到其对应文件

-n:将指向目录的软链接视为普通文件

-P:若目标文件为软链接时,直接链接它自身

-r:创建相对于文件位置的软链接

-s:对源文件创建软链接

-S:设置备份文件的后缀

-t:设置链接文件存放于哪个目录

-v:显示执行过程详细信息

--backup:备份已存在的文件

--help:显示帮助信息

--version:显示版本信息

软连接

symbolic link,源文件删除,链接文件失效,普通文件和目录都可以创建软链接,支持跨分区

语法格式

ln  -s   /路径/源数据     /路径/快捷方式的名称

参考示例

01. 创建文件信息
]# touch /data/oldboy
02. 创建软链接
]# ln -s /data/oldboy /data/oldboy.txt_soft
03. 检查创建信息
]# ls -l oldboy*
]# ln  -s   /etc/sysconfig/network-scripts/   /ns
]# ls  -l   /ns    #查看快捷方式的信息
]# readlink /dev/cdrom
sr0

硬链接

hard link,在一个分区中,inode号码相同互为硬链接文件,源文件删除,链接文件依旧有效,目录无法创建硬链接 。

语法格式

ln  [参数]   /路径/源数据     /路径/快捷方式的名称   

优缺点

优点:源数据消失,快捷方式仍然有效

缺点:只能针对文件制作快捷方式,不支持支持跨分区,可以对文件创建硬链接(硬链接文件和源文件必须在同一分区中) 

参考示例

01. 创建文件信息
# touch /data/oldboy
02. 创建硬链接
# ln /data/oldboy /data/oldboy.txt_hard
03. 检查创建信息
# ls -lhi oldboy*
readlink命令:查看软链接文件本身的内容,存放的是源文件的路径

软硬链接区别

链接后的文件大小不一致、文件类型和权限不一致(颜色不一致)

链接后的文件和源文件inode信息有出入,硬链接inode号码一致,软链接inode号码不一样

源文件被删除之后,硬链接文件依然有效,软链接文件失效,软硬链接创建过程不一致

实用排查

1.如何真正删除一个文件

  文件硬链接数为0时,表示数据真正删除了

  文件信息没有被进程调用的时候,进程调用数为0

  查看文件是否被进程调用:lsof |grep "secure"

2.避免文件丢失方法

  利用硬链接的方式

  利用cp备份命令

企业案例

磁盘空间报警了,需要删除清空没用数据

第一个历程: 确认磁盘空间是否真的满了

# df -h   查看block空间是否不够了
# df -i   查看inode空间是否不够了

第二个历程: 确认哪个数据占用磁盘空间比较多

# du -sh /
# du -sh /etc

第三个历程: 利用rm -rf命令进行删除

第四个历程: 需要重启服务释放空间