Linux常用命令指南 - ln 命令 创建链接

Linux常用命令指南 - ln 命令 创建链接


前言

在linux中,使用ln创建软链接或者硬链接的场景很多。

在分析 snap 命令使用过程中,发现了 snap 应用安装的数据大多会在 /snap/ 目录中,新增一个只读目录,但发现 core22 目录只有一个864目录,没有创建活动链接 current 指向它导致其他应用启动报错。

本文就对 ln 命令使用场景做一个介绍。


一、ln 是什么?

ln 命令用于将一个文件创建链接。链接分为软链接和硬链接,命令默认使用硬链接。

**软链接:**类似于windows系统中的快捷方式,对链接进行操作,不会修改源文件。不可以删除源文件,删除源文件导致链接文件找不到。
 
**硬链接:**相当于把源文件又复制了一份,而且修改链接文件,也会改变源文件,可以删除源文件,链接文件可以正常打开。目录不予许创建硬链接。

二、ln help 中文手册

以下是 ln --help 中文手册:

$ ln --help 
用法:ln [选项]... [-T] 目标 链接名
 或:ln [选项]... 目标
 或:ln [选项]... 目标... 目录
 或:ln [选项]... -t 目录 目标...
第一种格式,创建一个名为 <链接名> 的、指向 <目标> 的链接。
第二种格式,在当前目录创建指向 <目标> 的链接。
第三和第四种格式,在 <目录> 中创建指向各个 <目标> 的链接。
默认创建硬链接,当使用 --symbolic 时创建符号链接。
默认情况下,目标(指新链接的名称)不能已经存在。
创建硬链接时,每个 <目标> 都必须存在。符号链接可以包含任意的文本;
以后进行解析时,符号链接会被解析为一个相对于其父目录的相对链接。

长选项的必选参数对于短选项也是必选的。
      --backup[=控制]         为每个已存在的目标文件创建备份文件
  -b                          类似 --backup,但不接受参数
  -d, -F, --directory         允许超级用户尝试创建指向目录的硬链接
                                (注意:即使是超级用户,此操作也可能因系统
                                限制而失败)
  -f, --force                 删除已存在的目标文件
  -i, --interactive           删除目标文件前进行确认
  -L, --logical               如果 <目标> 为符号链接,将其解引用
  -n, --no-dereference        如果 <链接名> 是一个指向目录的
                                符号链接,则将其视为普通文件处理
  -P, --physical              创建直接指向符号链接的硬链接
  -r, --relative-s 同时使用时,创建相对于链接位置的链接
  -s, --symbolic              创建符号链接,而不是硬链接
  -S, --suffix=后缀           替换通常使用的备份文件后缀
  -t, --target-directory=目录  在指定的 <目录> 中创建链接
  -T, --no-target-directory   总是 <链接名> 视为普通文件
  -v, --verbose               打印每个已创建链接的文件名称
      --help        显示此帮助信息并退出
      --version     显示版本信息并退出

备份文件的后缀为 "~",除非使用了 --suffix 选项或 SIMPLE_BACKUP_SUFFIX 环境变量
指定了其他后缀。版本控制的方式可通过 --backup 选项或 VERSION_CONTROL 环境变量
来选择。以下是可用的设置值:

  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     使用带有数字编号的备份文件进行备份
  existing, nil   若带数字的备份文件已经存在则使用 numbered,否则使用 simple
  simple, never   总是使用简单方式进行备份

如果指定了 -s 选项,会忽略 -L 和 -P。否则,当某个 <目标> 为符号链接时,
会由最后一个指定的选项来控制程序的行为(默认为 -P)。

GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告任何翻译错误
完整文档 <https://www.gnu.org/software/coreutils/ln>
或者在本地使用:info '(coreutils) ln invocation'

三、ln 使用场景

以下是ln 常用使用场景。

$ ln -s ~/code/ mycode # 基于~/code/开发目录建立软链接 mycode
$ mv mycode mycode-new # 软链接重命名
$ ln -sf mycode-new ~/code/demo-ostree # 修改软链接指向到新目录~/code/demo-ostree

总结

本文仅仅介绍了ln的使用方法和常用使用场景。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yusq77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值