Instrument: ln
NAME
ln - make links between files
SYNOPSIS
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
软连接和硬链接:
软连接文件的一种快捷方式,有自己的inode文件节点,并在磁盘上有一小片空间存放路径名;硬链接则是一个文件有多个别名,系统并不为它重新分配inode。软连接可以对目录进行连接;硬连接不行。
参数:
- -f: --force remove existing destination files
- -n: --no-dereference treat LINK_NAME as a normal file if it is a symbolic link to a drectory
- -s: --symbloic make symbolic links instead of hard links
- -v: --verbose print name of each linked file
*******************************************************************************************************
建立到文件的软链接:
-
ln -sv TARGET LINK_NAME
-
ln -svf TARGET LINK_NAME
覆盖原有软连接
*******************************************************************************************************
建立到目录的软链接:
-
ln -sv TARGET LINK_NAME
LINK_NAME不存在时,会直接创建软连接
-
LINK_NAME存在,且为一个目录时,会在目录下生成连接文件,且连接文件的目标为命令中给出的路径,如果是相对路径,则发生错误,故使用相对路径时,谨慎
- 如果LINK_NAME只给定了一个已经存在的目录, 在会在该目录下以TARGET的BASE_NAME创建连接, 并会不覆盖已经存在的目录, ln 使用 -f 会覆盖 已经存在的 连接 或 普通文件, 但绝不会覆盖LINK_NAME位置的目录(该目录已经存在)
- 使用rm删除连接文件的时候,如果连接文件指向目录,则加倍小心带/和不带/区别, 带 / 操作的是连接指向的目录, 不带 / 操作的是连接本身
带/删除的是连接文件指向的目录
不带/才是删除连接文件本身上图中b为指向目录的一个连接文件
-
如果要覆盖指向目录的连接文件则必须使用-n选项,否则ln会在连接文件指向的目录下创建新的连接文件,这通常不是我们所期望的,-n选项标明把连接文件作为普通文件对待,进行覆盖
上图示例中,在xx这个连接文件所指向的目录下,建立了以$(basename TARGET)为新名字的连接文件
-
覆盖指向目录的连接文件使用-n参数
- -b 备份
- --suffix 指定备份suffix
-
如果TARGET为文件则TARGET最后不能带 / , 目录无限制
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律