Linux—ln(link files)命令使用方法(How to create links on Linux)

news2024/11/19 21:01:21

Linux—ln(link files)命令使用方法

在 Linux 系统中工作时,需要在不同的目录中使用相同的文件时不必在每个目录下都复制一份文件,这样不仅浪费磁盘空间,还会导致文件管理上的混乱。

在这里插入图片描述
ln(link files) 便是 Linux 中用于创建链接(也称为快捷方式)的命令。 使用 ln 命令创建链接是一种高效且节省空间的方法。

ln命令可以实现—将文件放在一个固定的目录中,然后在其他目录下创建指向该文件的链接。

链接link可以分为两种类型:硬链接(hard link)和软链接(symbolic link 或者 soft link)。


一、硬链接 (Hard Link)

定义:

  • 硬链接(hard link指向同一个文件系统中的同一个 inode 的多个文件名。注意哈同一文件系统!!! A hardlink can only work on the same filesystem.🤣🤣🤣
  • 每个文件在Linux系统中都有一个inode,包含了文件的所有信息(除了文件名和数据)。

在这里插入图片描述

  • 每个硬链接(Hard Link)都是文件的一个独立入口点,它们共享相同的数据块。

  • 创建一个硬链接时,实际上是为这个inode创建了一个新的入口点。

在这里插入图片描述

  • Hardlink has the same inode number and permissions of original file.
  • 即使原始文件被删除,只要还有一个硬链接存在,文件的数据就仍然可以访问。
  • Hard Link Demo:
    在这里插入图片描述

Hard Link 特性:

  • 共享数据:所有硬链接都指向同一个文件内容,对任何一个硬链接进行修改,其他硬链接也会看到这些更改。
    在这里插入图片描述
  • 删除原文件删除原文件不会影响其他硬链接硬链接是平等的,没有所谓的“原文件”,只要还有一个硬链接存在,文件的数据就仍然可以访问。
  • 限制硬链接不能跨文件系统创建,也不能为目录创建硬链接。(记住哈:hard link— 必须同一文件系统 + no 目录🤣🤣🤣)
    在这里插入图片描述

二、软链接 (Symbolic Link 或 Soft Link)

定义:

  • 软链接是一个特殊的文件,其中包含指向另一个文件或目录的路径

在这里插入图片描述

  • 软链接本身是一个独立的文件,只是其内容是指向另一个文件或目录的路径
  • Softlink has different inode number and file permissions than original file.
  • Softlink Demo:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


Soft link特性:

  • 独立性软链接是一个独立的文件,即使原始文件被删除,软链接仍然存在,但会变成无效链接(称为“断链”)。

在这里插入图片描述

  • 跨文件系统软链接可以跨文件系统创建,也可以指向目录。

在这里插入图片描述

  • 路径:软链接可以使用绝对路径或相对路径。

三、创建、删除link语法

3.1 硬链接

ln [选项] 目标文件 链接文件
  • -f--force:如果目标文件已经存在,则先删除再创建链接。
  • -i:在删除已存在的目标文件前提示用户。
  • -v--verbose:显示详细的处理信息。

  1. 创建硬链接(可以相对路径 也可绝对路径哈🤣🤣🤣)

在这里插入图片描述

已有文件 /home/user/documents/report.txt,在 /home/user/backup 目录下创建一个硬链接 report_link.txt

ln /home/user/documents/report.txt /home/user/backup/report_link.txt
  1. 强制创建硬链接(如果目标文件已存在则替换):

    ln -f /home/user/documents/report.txt /home/user/backup/report_link.txt
    
  2. 创建硬链接并显示详细信息

    ln -v /home/user/documents/report.txt /home/user/backup/report_link.txt
    

重要的事情说三遍🤣🤣🤣:

  • 硬链接必须在同一个文件系统内:硬链接不能跨文件系统创建。
  • 硬链接不能指向目录:只能为普通文件创建硬链接。
  • 硬链接是平等的:所有硬链接都指向同一个 inode,因此删除任意一个硬链接都不会影响其他硬链接或原始文件。

Tips可以使用 ls -i 命令查看文件的 inode 号,从而确认两个文件是否为硬链接

如果两个文件的 inode 号相同,那么它们就是硬链接。
在这里插入图片描述


3.2 软链接

ln -s [选项] 目标文件 链接文件
  • -f--force:如果目标文件已经存在,则先删除再创建链接。
  • -i:在删除已存在的目标文件前提示用户。
  • -v--verbose:显示详细的处理信息。
  1. 创建软链接

在这里插入图片描述

/home/user/documents/report.txt,在 /home/user/backup 目录下创建一个软链接 report_symlink.txt

ln -s /home/user/documents/report.txt /home/user/backup/report_symlink.txt
  1. 强制创建软链接(如果目标文件已存在则替换):

    ln -sf /home/user/documents/report.txt /home/user/backup/report_symlink.txt
    
  2. 创建软链接并显示详细信息

    ln -sv /home/user/documents/report.txt /home/user/backup/report_symlink.txt
    

重要的事情说三遍🤣🤣🤣:

  • 软链接可以跨文件系统:符号链接可以指向不同文件系统中的文件或目录。
  • 软链接可以指向目录:不仅可以为文件创建软链接,还可以为目录创建软链接。

在这里插入图片描述

  • 软链接的路径:可以使用绝对路径或相对路径。相对路径是相对于软链接所在目录的路径。

Tips:可以使用 ls -l 命令查看文件的详细信息,从而确认是否为软链接及其指向的目标:

ls -l /home/user/backup/report_symlink.txt
lrwxrwxrwx 1 user user 27 Oct 25 14:30 /home/user/backup/report_symlink.txt -> /home/user/documents/report.txt

l 表示这是一个符号链接,-> 后面的部分表示链接指向的目标文件。


3.3 删除link

使用 rm 命令

rm 是一个通用的删除命令,可以用来删除文件、目录和链接。对于删除链接,rm 命令是最常用的。
语法:

rm [选项] 链接路径

删除符号链接 symlink.txt 和一个硬链接 hardlink.txt

rm symlink.txt
rm hardlink.txt
使用 unlink 命令

unlink 命令专门用于删除链接。它的功能与 rm 命令类似,但更专注于删除单个文件或链接。

unlink 链接路径
unlink symlink.txt
unlink hardlink.txt
  1. 通用性

    • rm 是一个更通用的命令,可以删除文件、目录和链接。
    • unlink 专门用于删除单个文件或链接。
  2. 交互性

    • rm 命令提供了更多的选项,例如 -i 选项可以在删除前提示用户确认。
    • unlink 命令没有这些额外的选项,它只是一个简单的删除操作。
  3. 安全性

    • 使用 rm 时,可以通过 -i 选项增加安全性,防止误删文件。
    • unlink 没有这种选项,因此在使用时需要更加小心。
  • 推荐使用 rm 命令,因为它更常用,功能更丰富,尤其是在需要增加安全性的场景下。
  • 如果只需要简单地删除一个链接,可以使用 unlink 命令。

tips:无论使用哪个命令,删除链接后,链接文件本身会被移除,但硬链接对应的原始文件不会受到影响(除非这是最后一个硬链接)。对于符号链接,删除后只会移除链接文件,不会影响原始文件。


Link Tips:

  • 节省磁盘空间:无论是硬链接还是软链接,都不会复制原文件的内容,只占用非常少量的磁盘空间。
  • 易于维护:只需要在一个地方更新文件,所有链接都会自动反映这些更改。
  • 灵活性:软链接特别灵活,可以跨文件系统创建,也可以指向目录。

整理不易,列位多多支持,求点赞、求收藏、求评论 谢谢啦🤣🤣🤣~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2243617.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我要成为算法高手-位运算篇

目录 1. 判断字符是否唯一2. 消失的数字3. 两整数之和4. 只出现一次的数字II5. 消失的两个数字 前情提要:如果对一些常见的二进制位运算不熟悉,请看这篇文章: 常见的位运算 1. 判断字符是否唯一 面试题 01.01. 判定字符是否唯一 - 力扣&…

1Panel 推送 SSL 证书到阿里云、腾讯云

本文首发于 Anyeの小站,点击链接 访问原文体验更佳 前言 都用 CDN 了还在乎那点 1 年证书钱么? 开句玩笑话,按照 Apple 的说法,证书有效期不该超过 45 天。那么证书有效期的缩短意味着要更频繁地更新证书。对于我这样的“裸奔”…

23种设计模式-访问者(Visitor)设计模式

文章目录 一.什么是访问者模式?二.访问者模式的结构三.访问者模式的应用场景四.访问者模式的优缺点五.访问者模式的C实现六.访问者模式的JAVA实现七.代码解释八.总结 类图: 访问者设计模式类图 一.什么是访问者模式? 访问者模式(…

JavaScript——DOM编程、JS的对象和JSON

一、DOM编程 DOM(Document Object Model)编程:就是使用document对象的API,完成对网页HTML文档进行动态修改,以实现网页数据,和样式动态变化效果的编程。 (一)DOM获取元素的多种方法 1.查找元素的函数 getElementById("id值…

Pr:音频过渡

Adobe Premiere Pro 自带一组共三个音频过渡 Audio Transitions效果。 对音频剪辑之间应用交叉淡化 Crossfade过渡,操作方式类似于应用视频过渡效果。 对于交叉淡化,要保证前剪辑的出点之后及后剪辑的入点之前有足够的预留内容(也称“手柄”&…

大数据-226 离线数仓 - Flume 优化配置 自定义拦截器 拦截原理 拦截器实现 Java

点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop&#xff0…

stm32启动过程解析startup启动文件

1.STM32的启动过程模式 1.1 根据boot引脚决定三种启动模式 复位后,在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。BOOT0 为专用引脚,而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样,相应 GPIO 引脚即进入空闲状态,可用于…

如何在项目中用elementui实现分页器功能

1.在结构部分复制官网代码&#xff1a; <template> 标签: 这是 Vue 模板的根标签&#xff0c;包含所有的 HTML 元素和 Vue 组件。 <div> 标签: 这是一个普通的 HTML 元素&#xff0c;包裹了 el-pagination 组件。它没有特别的意义&#xff0c;只是为了确保 el-pagi…

15-大模型 RAG 经验篇

一、LLMs 已经具备了较强能力了&#xff0c;存在哪些不足点? 在 LLM 已经具备了较强能力的基础上&#xff0c;仍然存在以下问题&#xff1a; 幻觉问题&#xff1a;LLM 文本生成的底层原理是基于概率的 token by token 的形式&#xff0c;因此会不可避免地产生"一本正经…

数据结构-二叉树及其遍历

🚀欢迎来到我的【数据结构】专栏🚀 🙋我是小蜗,一名在职牛马。🐒我的博客主页​​​​​​ ➡️ ➡️ 小蜗向前冲的主页🙏🙏欢迎大家的关注,你们的关注是我创作的最大动力🙏🙏🌍前言 本篇文章咱们聊聊数据结构中的树,准确的说因该是只说一说二叉树以及相…

Iview DatePicker 仅允许选择当前月份及以后的月份

iview DatePicker之前月份禁用且下月可用 html代码 <DatePicker type"month" :options"options4" :value"dialogForm.estimatedStartTimeWithCreate" on-change"monthTime($event, loadDateStart)" placeholder"请选择时间&q…

r-and-r——提高长文本质量保证任务的准确性重新提示和上下文搜索的新方法可减轻大规模语言模型中的迷失在中间现象

概述 随着大规模语言模型的兴起&#xff0c;自然语言处理领域取得了重大发展。这些创新的模型允许用户通过输入简单的 "提示 "文本来执行各种任务。然而&#xff0c;众所周知&#xff0c;在问题解答&#xff08;QA&#xff09;任务中&#xff0c;用户在处理长文本时…

【GPTs】Ai-Ming:AI命理助手,个人运势与未来发展剖析

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 &#x1f4af;GPTs指令&#x1f4af;前言&#x1f4af;Ai-Ming主要功能适用场景优点缺点 &#x1f4af;小结 &#x1f4af;GPTs指令 中文翻译&#xff1a; defcomplete_sexagenary&#xff08;年&a…

ubuntu24.04网卡配置

vim /etc/netplan/01-netcfg.yaml /24表示子网掩码的长度。这种表示法称为CIDR&#xff08;无类别域间路由&#xff09;记法。CIDR记法将IP地址和它们的子网掩码合并为一个单一的值&#xff0c;其中斜杠/后面的数字表示子网掩码中连续的1的位数。 对于/24&#xff1a; 24表示…

【linux】如何扩展磁盘容量(VMware虚拟机)-转载

如何扩展磁盘容量(VMware虚拟机) 一、前置准备工作 扩展虚拟机磁盘前&#xff0c;需要先把虚拟机关机才能进行扩展磁盘操作 1.选择虚拟机设置&#xff0c;如下图所示 2.输入你想扩展的磁盘容量&#xff0c;以本次实操为例&#xff0c;我这里输入的30G&#xff08;具体按照实…

python 数据类型----可变数据类型

一、list列表类型&#xff1a; 一种有序集合&#xff0c;里面有多个数据用逗号隔开&#xff0c;可以对数据进行追加、插入、删除和替换&#xff1b;使用[]标识&#xff0c;可以包含任意数据类型 登录后复制 # 字符串类型列表 names[bill,may,jack]#整数型列表 numbers [1,2,34…

STARTS:一种用于自动脑电/脑磁(E/MEG)源成像的自适应时空框架|文献速递-基于深度学习的病灶分割与数据超分辨率

Title 题目 STARTS: A Self-adapted Spatio-temporal Framework for Automatic E/MEG SourceImaging STARTS&#xff1a;一种用于自动脑电/脑磁(E/MEG)源成像的自适应时空框架 01 文献速递介绍 电生理源成像&#xff08;Electrophysiological Source Imaging&#xff0c;E…

海康威视和大华视频设备对接方案

目录 一、海康威视 【老版本】 【新版本】 二、大华 一、海康威视 【老版本】 URL规定&#xff1a; rtsp://username:password[ipaddress]/[videotype]/ch[number]/[streamtype] 注&#xff1a;VLC可以支持解析URL里的用户名密码&#xff0c;实际发给设备的RTSP请求不支…

20.UE5UI预构造,开始菜单,事件分发器

2-22 开始菜单、事件分发器、UI预构造_哔哩哔哩_bilibili 目录 1.UI预构造 2.开始菜单和开始关卡 2.1开始菜单 2.2开始关卡 2.3将开始菜单展示到开始关卡 3.事件分发器 1.UI预构造 如果我们直接再画布上设计我们的按钮&#xff0c;我们需要为每一个按钮进行编辑&#x…

手搓神经网络(MLP)解决MNIST手写数字识别问题 | 数学推导+代码实现 | 仅用numpy,tensor和torch基本计算 | 含正反向传播数学推导

手写数字识别&#xff08;神经网络入门&#xff09; 文章目录 手写数字识别&#xff08;神经网络入门&#xff09;实验概述实验过程数据准备模型实现线性变换层前向传播反向传播更新参数整体实现 激活函数层&#xff08;ReLU&#xff09;前向传播反向传播整体实现 Softmax层&am…