当前位置: 首页 > news >正文

linux:ln用法详解

文章目录

  • 1. 描述
  • 2. 语法
    • 2.1 硬链接(Hard Link)
    • 2.2. 符号链接(Symbolic Link / Soft Link)
  • 3. `ln` 命令的常用选项
  • 4. 例子


1. 描述

在 Linux 系统中,ln 命令用于创建硬链接(Hard Link)或符号链接(Symbolic Link,也称为软链接)。链接的作用是创建文件或目录的别名,而不复制文件或目录本身。硬链接和符号链接有不同的功能和使用场景。

2. 语法

ln 命令的基本语法格式如下:

ln [选项] 源文件 目标文件

其中,源文件 是你希望创建链接的文件或目录,目标文件 是你想创建的链接的路径。

完整语法如下:

Usage: ln [OPTION]... [-T] TARGET LINK_NAMEor:  ln [OPTION]... TARGETor:  ln [OPTION]... TARGET... DIRECTORYor:  ln [OPTION]... -t DIRECTORY TARGET...
In the 1st form, create a link to TARGET with the name LINK_NAME.
In the 2nd form, create a link to TARGET in the current directory.
In the 3rd and 4th forms, create links to each TARGET in DIRECTORY.
Create hard links by default, symbolic links with --symbolic.
By default, each destination (name of new link) should not already exist.
When creating hard links, each TARGET must exist.  Symbolic links
can hold arbitrary text; if later resolved, a relative link is
interpreted in relation to its parent directory.Mandatory arguments to long options are mandatory for short options too.--backup[=CONTROL]      make a backup of each existing destination file-b                          like --backup but does not accept an argument-d, -F, --directory         allow the superuser to attempt to hard linkdirectories (note: will probably fail due tosystem restrictions, even for the superuser)-f, --force                 remove existing destination files-i, --interactive           prompt whether to remove destinations-L, --logical               dereference TARGETs that are symbolic links-n, --no-dereference        treat LINK_NAME as a normal file ifit is a symbolic link to a directory-P, --physical              make hard links directly to symbolic links-r, --relative              create symbolic links relative to link location-s, --symbolic              make symbolic links instead of hard links-S, --suffix=SUFFIX         override the usual backup suffix-t, --target-directory=DIRECTORY  specify the DIRECTORY in which to createthe links-T, --no-target-directory   treat LINK_NAME as a normal file always-v, --verbose               print name of each linked file--help     display this help and exit--version  output version information and exit

2.1 硬链接(Hard Link)

硬链接的特点:

  • 硬链接与原文件共享相同的 inode 和数据块。
  • 硬链接不能跨越文件系统。
  • 删除硬链接或原文件,文件数据依然存在,除非所有链接都被删除。
  • 硬链接只能针对文件,不能用于目录。
    硬链接是文件在文件系统中的一个指针。它们共享相同的 inode 号,指向文件的实际数据块。因此,硬链接和原始文件实际上是同一个文件,删除其中一个不会影响另一个。

用法:

ln 源文件 目标文件

示例:

ln original.txt hardlink.txt

这将创建一个名为 hardlink.txt 的硬链接,指向 original.txt。此时 hardlink.txtoriginal.txt 完全等效,删除 original.txt 不会影响 hardlink.txt

2.2. 符号链接(Symbolic Link / Soft Link)

符号链接的特点:

  • 符号链接与原文件不共享相同的 inode,它只包含原文件的路径。
  • 符号链接可以跨文件系统。
  • 符号链接可以指向文件或目录。
  • 如果删除原文件,符号链接将变为无效。
    符号链接是一个特殊类型的文件,它包含指向另一个文件或目录的路径。符号链接与硬链接不同,它们不共享相同的 inode 号,而是存储原文件的路径。

用法:

ln -s 源文件 目标文件

示例:

ln -s original.txt symlink.txt

这将创建一个名为 symlink.txt 的符号链接,指向 original.txt。如果删除 original.txtsymlink.txt 将变为一个无效的链接(称为“断链”)。

硬链接与符号链接的区别

特性硬链接 (Hard Link)符号链接 (Symbolic Link)
Inode 共享
文件指向直接指向文件的物理数据指向文件的路径
文件删除影响删除任一链接不会影响其他链接或文件数据删除目标文件后,符号链接变为无效
跨文件系统
可链接的类型仅限文件文件和目录

3. ln 命令的常用选项

  • -s:创建符号链接,而非硬链接。
  • -f:强制创建链接。如果目标文件已存在,ln 会直接覆盖它。
  • -n:如果目标文件是符号链接,ln -n 会将符号链接作为常规文件处理,而不会尝试跟随它。
  • -v:显示详细的操作信息。
  • -T:强制将目标解释为普通文件(如果目标是一个目录,使用此选项将报告错误)。
  • -r:创建相对路径的符号链接,而不是绝对路径。

4. 例子

(1)创建一个硬链接

ln file1.txt file2.txt

这会创建 file2.txt,它是 file1.txt 的硬链接。它们指向同一个物理数据,删除其中一个不会影响另一个。

(2)创建一个符号链接

ln -s /path/to/file1.txt /path/to/file2.txt

这会创建 file2.txt,它是 file1.txt 的符号链接。file2.txt 是指向 file1.txt 的路径引用。

(3)强制覆盖已存在的符号链接

ln -sf newfile.txt link.txt

如果 link.txt 已经存在,这条命令将强制覆盖它,指向新的文件 newfile.txt

(4) 创建相对路径的符号链接

ln -sr /path/to/original.txt link.txt

这将创建一个相对路径的符号链接。如果 original.txt 相对于符号链接所在位置的路径关系发生变化,符号链接仍然可以正确指向目标文件。

(5)为目录创建符号链接

ln -s /home/user/mydir /tmp/mydirlink

这会创建一个名为 /tmp/mydirlink 的符号链接,指向 /home/user/mydir 目录。符号链接可以用于目录,而硬链接不能。

(6)查看链接文件信息
使用 ls -l 可以查看文件链接的信息:

ls -l

输出示例:

lrwxrwxrwx 1 user user 11 Aug 14 11:32 symlink.txt -> original.txt

在符号链接的情况下,输出中会显示符号链接指向的目标文件(symlink.txt -> original.txt)。l 表示这是一个符号链接。

(7) 删除符号链接

删除符号链接只需使用 rm 命令:

rm symlink.txt

这只会删除符号链接文件本身,不会影响原始文件。

相关文章:

linux:ln用法详解

文章目录 1. 描述2. 语法2.1 硬链接(Hard Link)2.2. 符号链接(Symbolic Link / Soft Link) 3. ln 命令的常用选项4. 例子 1. 描述 在 Linux 系统中,ln 命令用于创建硬链接(Hard Link)或符号链接…...

0基础跟德姆(dom)一起学AI Python进阶02-Python面向对象高级

1 [重点]定义类的几种语法 方式1:类名 在上一章节的学习过程中,我们都使用了这种定义类的语法: properties class 类名: 代码 ... 例如,使用该方式来定义一个老师类。 python # 1.class 类名: # pass class Te…...

【深度学习】softmax 回归的从零开始实现与简洁实现

前言 小时候听过一个小孩练琴的故事,老师让他先弹最简单的第一小节,小孩练了两天后弹不出。接着,老师让他直接去练更难的第二小节,小孩练习了几天后还是弹不出,开始感觉到挫败和烦躁了。 小孩以为老师之后会让他从简…...

Sollong、IO.NET和 Solana,为何参加 WebX 2024活动?

东京王子花园塔酒店 ChainCatcher_携手 DPCapital_XYZ与WebX_Asia共同打造“世界のStaking最大级集结|Tokyo站”盛会,为全球Staking爱好者与行业精英搭建交流合作桥梁!全球顶尖Staking项目方、知名区块链机构、行业领袖与企业家将齐聚东京,共…...

3个免费好用的网站,可以转换PDF,提取MP3

今天分享的三个网站,分别用于文件转换PDF,QMC转MP3格式和配色网站。 TOPDF 这个网站是一个在线PDF转换工具,可以快速将文本文件、演示文稿、电子表格和图片转换为PDF格式。它支持多种文件格式,如AZW3、BMP、CHM、CSV、DjVu、DOC、…...

PHP智能匹配轻松预订自习室在线订座系统小程序源码

智能匹配,轻松预订——自习室在线订座系统 📚【开篇:告别排队,迎接智能学习新时代】📚 还在为找不到合适的自习室座位而烦恼吗?是不是每次去图书馆或自习室都要提前好久去排队占位?现在&#…...

构建高效医护人员排班系统:Spring Boot框架的优势

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理医护人员排班系统的相关信息成为必然。开发…...

深度学习——引言

一、机器学习的关键因素 1.1 数据 每个数据集由一 个个样本组成,大多情况下,数据遵循独立同分布。通常每个样本由一组特征属性组成。 好的数据集 { 数据样本多 正确的数据 ( g a r b a g e i n , g a r b a g e o u t ) 好的数据集 \begin{cases} 数据…...

安装Android Studio及第一个Android工程可能遇到的问题,gradle下载过慢、sync失败?

Android Studio版本众多,电脑操作系统、电脑型号、电脑硬件也是多种多样,幸运的半个小时内可以完成安装,碰到不兼容的电脑,一天甚至更长时间都无法安装成功。 Android安装及第一个Android工程分为4个步骤,为什么放到一…...

密码学---常见的其他密码

✨费纳姆密码:加解密都需要密钥,以二进制形式表示的密码。(密钥多是一次性的,称位一次性密码本) 加密过程: char_num {A: 1000001, B: 1000010, C: 1000011, D: 1000100,E: 1000101, F: 1000110, G: 100…...

Mysql8 主从复制主从切换(超详细)

文章目录 1 主从复制1.1 实施前提1.2 主节点配置(在192.168.25.91操作)1.3 从节点配置(在192.168.25.92操作)1.4 创建用于主从同步的用户1.5 开启主从同步1.5 主从同步验证 2 主从切换2.1 实施前提2.2 主节点设置只读(在192.168.25.91操作)2.3 检查主从数据是否同步完毕(在192.…...

8月29日wpf

小语 折磨我们的往往是想象,而不是真实。 学wpf 7.07 1.vs如何创建新项目? 退出,创建新项目,点c#,windows,进入界面 2.app.config在哪里? 好像只有这个。。。 试一下,不是 我…...

Android经典实战之SurfaceView原理和实践

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 SurfaceView 是一个非常强大但也相对复杂的 UI 组件,特别适用于对性能要求较高的绘制任务,如视频播放、游戏等。 1. Su…...

蜜罐的识别

蜜罐技术本质上是对网络攻击方欺骗的一项技术,通过在服务上布置一些仿真的系统、网络服务、或是模拟一些物联网设备来诱惑攻击方对其实施攻击从而捕获攻击行为,分析攻击手段与方式,或是收集一些攻击者的个人信息来进行分析画像达到精准溯源的…...

传感与检测技术

感知技术 传感器基本特性 静态特性 动态特性 传感器分类 电阻式传感器 通常情况下,电阻应变传感器的灵敏系数为常数 根据测量对象不同可分为...

监控平台之nodejs模拟后端接口

github:可以下载进行实验 https://github.com/Mr-Shi-root/sdk-platform/tree/master 1.配置node环境,安装express cors body-parser babel/cors body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。cookie-parse…...

TCP 协议详解

目录 一.定义 二.TCP 协议报文格式 三.确认应答(ACK)机制 四.捎带应答 五.连接管理机制 六.滑动窗口 七.快重传 八.拥塞控制 九.延时应答 十.面向字节流 十一.粘包问题 十二.异常情况 十三.TCP 小结 一.定义 传输控制协议(TCP,Transmissio…...

【转载】golang内存分配

Go 的分配采用了类似 tcmalloc 的结构.特点: 使用一小块一小块的连续内存页, 进行分配某个范围大小的内存需求. 比如某个连续 8KB 专门用于分配 17-24 字节,以此减少内存碎片. 线程拥有一定的 cache, 可用于无锁分配. 同时 Go 对于 GC 后回收的内存页, 并不是马上归还给操作系…...

TPM管理培训:学以致用,才是硬道理

全面生产维护(TotalProductiveMaintenance,TPM)作为一种先进的管理体系,正被越来越多的企业所采用,以期通过全员参与、全系统改善的方式,实现设备综合效率的最大化。然而,理论学习与实践应用之间往往存在鸿…...

2024年六月英语四级真题及解析PDF共9页

2024年六月英语四级真题及解析PDF共9页,真题就是最好的复习资料,希望对大家有所帮助。...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

微信小程序云开发平台MySQL的连接方式

注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...