Linux—ln(link files)命令使用方法(How to create links on Linux)
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
:显示详细的处理信息。
- 创建硬链接(可以相对路径 也可绝对路径哈🤣🤣🤣):
已有文件 /home/user/documents/report.txt
,在 /home/user/backup
目录下创建一个硬链接 report_link.txt
:
ln /home/user/documents/report.txt /home/user/backup/report_link.txt
-
强制创建硬链接(如果目标文件已存在则替换):
ln -f /home/user/documents/report.txt /home/user/backup/report_link.txt
-
创建硬链接并显示详细信息:
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
:显示详细的处理信息。
- 创建软链接:
/home/user/documents/report.txt
,在 /home/user/backup
目录下创建一个软链接 report_symlink.txt
:
ln -s /home/user/documents/report.txt /home/user/backup/report_symlink.txt
-
强制创建软链接(如果目标文件已存在则替换):
ln -sf /home/user/documents/report.txt /home/user/backup/report_symlink.txt
-
创建软链接并显示详细信息:
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
-
通用性:
rm
是一个更通用的命令,可以删除文件、目录和链接。unlink
专门用于删除单个文件或链接。
-
交互性:
rm
命令提供了更多的选项,例如-i
选项可以在删除前提示用户确认。unlink
命令没有这些额外的选项,它只是一个简单的删除操作。
-
安全性:
- 使用
rm
时,可以通过-i
选项增加安全性,防止误删文件。 unlink
没有这种选项,因此在使用时需要更加小心。
- 使用
- 推荐使用
rm
命令,因为它更常用,功能更丰富,尤其是在需要增加安全性的场景下。 - 如果只需要简单地删除一个链接,可以使用
unlink
命令。
tips:无论使用哪个命令,删除链接后,链接文件本身会被移除,但硬链接对应的原始文件不会受到影响(除非这是最后一个硬链接)。对于符号链接,删除后只会移除链接文件,不会影响原始文件。
Link Tips:
- 节省磁盘空间:无论是硬链接还是软链接,都不会复制原文件的内容,只占用非常少量的磁盘空间。
- 易于维护:只需要在一个地方更新文件,所有链接都会自动反映这些更改。
- 灵活性:软链接特别灵活,可以跨文件系统创建,也可以指向目录。
整理不易,列位多多支持,求点赞、求收藏、求评论 谢谢啦🤣🤣🤣~
相关文章:
Linux—ln(link files)命令使用方法(How to create links on Linux)
Linux—ln(link files)命令使用方法 在 Linux 系统中工作时,需要在不同的目录中使用相同的文件时,不必在每个目录下都复制一份文件,这样不仅浪费磁盘空间,还会导致文件管理上的混乱。 ln(link files) 便是…...
学习日记_20241110_聚类方法(K-Means)
前言 提醒: 文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。 其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展…...
解决Oracle DECODE函数字符串截断问题的深度剖析20241113
解决Oracle DECODE函数字符串截断问题的深度剖析 在使用Oracle数据库进行开发时,开发者可能会遇到一些令人困惑的问题。其中,在使用DECODE函数时,返回的字符串被截断就是一个典型的案例。本文将以学生管理系统为背景,深入探讨这个…...
开源模型应用落地-语音转文本-whisper模型-AIGC应用探索(二)
一、前言 语音转文本技术具有重要价值。它能提高信息记录和处理的效率,使人们可以快速将语音内容转换为可编辑、可存储的文本形式,方便后续查阅和分析。在教育领域,可帮助学生更好地记录课堂重点;在办公场景中,能简化会议记录工作。同时,该技术也为残障人士提供了便利,让…...
PHP框架 单一入口和多入口以及优缺点
在PHP框架中,单一入口和多入口是两种不同的应用架构设计方式,以下是关于这两者及其优缺点的详细解释: 一、单一入口 定义: 单一入口(Single Entry Point)指的是应用程序通过一个统一的文件(通…...
PhpSpreadsheet导出图片
PhpSpreadsheet导出图片 //导出public function pdf($ids){$jzInfo $this->model->where(id,$ids)->find();try {//巡检人员$staff_ids \app\admin\model\inspection\Plan::where(id,$jzInfo[plan_id])->value(staff_id);$staff_names \app\admin\model\inspect…...
AI 提示词(Prompt)入门 十:最佳实践|详细询问,提供细节!
1、原则解释 当与 ChatGPT 交流时,提供具体和详细的信息非常重要。 这样做可以帮助 ChatGPT 更准确地理解你的需求和上下文,从而生成更相关和有用的回答 明确的信息可以包括具体的问题背景、相关领域的说明、你所期望的答案类型等。 2、如何实践 明…...
web应用安全和信息泄露预防
文章目录 1:spring actuator导致的信息泄露1.1、Endpoint配置启用检测1.2、信息泄露复现1.3、防御 2:服务端口的合理使用3:弱口令(密码)管理4:服务端攻击4.1、短信业务,文件上传等资源型接口1、…...
《人工智能深度学习的基本路线图》
《人工智能深度学习的基本路线图》 基础准备阶段 数学基础: 线性代数:深度学习中大量涉及矩阵运算、向量空间等概念,线性代数是理解和处理这些的基础。例如,神经网络中的权重矩阵、输入向量的运算等都依赖于线性代数知识。学习内容…...
基于Java Springboot宠物猫售卖管理系统
一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据库:…...
力扣-Hot100-链表其三【算法学习day.36】
前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴&am…...
iOS逆向入门:使用theos注入第三方依赖库
背景 theos是一个跨平台的软件开发框架,常用于管理,开发和部署iOS项目,同时也是开发iOS越狱插件的主要工具。和MonkeyDev不同的是,它不依赖于xcode,可以在多个操作系统上运行。一个完整的iOS越狱开发流程包括…...
JavaScript 原型
JavaScript 的原型(Prototype)是其面向对象编程模型的核心概念之一,它决定了对象如何继承属性和方法。通过理解 JavaScript 的原型,你可以更好地理解对象之间的关系以及如何扩展对象功能。 核心概念 [[Prototype]](内部…...
力扣 LeetCode 20. 有效的括号(Day5:栈与队列)
解题思路: 使用栈 只有三种情况 1. ( [ { } ] ( ( 左括号多了 -> 最后栈中经过抵消会剩下括号 2. [ { ( ] } ] 括号不匹配 -> return false 3. [ { } ] ( ) ) ) 右括号多了 -> 未遍历完时,栈提前为空,…...
git使用及上线流程(仅为我工作中常用)
推荐软件或者直接终端 ⚠️注意:在确保远程和本地分支都可使用的情况下 git常见使用命令 ls---查看所有目录 pwd---本机密码 cd 目录名---进入目录 Touch ---创建文本文件 git status---查看状态 git branch---查看分支 git pull---拉取远程最新代码 git checkou…...
React Native 全栈开发实战班 - 打包发布之热更新
在完成 React Native 应用的开发与性能优化后,下一步就是将应用打包并发布到各大应用市场,如 Apple App Store 和 Google Play Store。本章节已经详细介绍了打包与发布的流程,包括 Android 和 iOS 平台的配置、打包步骤、签名配置以及发布到应…...
2024年11月16日 星期六 重新整理Go技术
今日格言 坚持每天进步一点点~ 一个人也可以是一个团队~ 学习全栈开发, 做自己喜欢的产品~~ 简介 大家好, 我是张大鹏, 今天是2024年11月16日星期六, 很高兴在这里给大家分享技术. 今天又是休息的一天, 做了很多的思考, 整理了自己掌握的技术, 比如Java, Python, Golang,…...
力扣第 55 题 跳跃游戏
力扣第 55 题 跳跃游戏(Jump Game)。题目要求判断一个非负整数数组中,是否能够从第一个位置跳跃到最后一个位置。每个元素表示从当前位置最多可以跳跃的步数。 解题思路 我们可以用 贪心算法 来解决这个问题。贪心的核心思想是始终维护当前…...
Golang | Leetcode Golang题解之第564题寻找最近的回文数
题目: 题解: func nearestPalindromic(n string) string {m : len(n)candidates : []int{int(math.Pow10(m-1)) - 1, int(math.Pow10(m)) 1}selfPrefix, _ : strconv.Atoi(n[:(m1)/2])for _, x : range []int{selfPrefix - 1, selfPrefix, selfPrefix …...
Spring Boot汽车资讯:科技与速度的交响
3系统分析 3.1可行性分析 通过对本汽车资讯网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本汽车资讯网站采用SSM框架,JAVA作为开发语言&#…...
从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望
作者:金峰(项良)、朱永林、赵世振(寰奕) 公司简介 杭州热联集团股份有限公司成立于 1997 年 10 月,是隶属杭州市实业投资集团的国有控股公司。公司专业从事国际、国内钢铁贸易黑色大宗商品及产业服务&…...
移动零
移动零 1、题目描述2、解答思路 1、题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 2、解答思路 已知数组后端若干元素为0&…...
C#编写的日志记录组件 - 开源研究系列文章
以前编写过一个日志记录组件的博文,这次发布一个修改过的完善版本。 1、 项目目录; 2、 源码介绍; 1) 实现; 2) 使用; 后面的参数为级别设置,只有大于这个级别的才进行日志记录,限制了日志记录的…...
猎板PCB罗杰斯板材的应用案例
以下是几个猎板 PCB 与罗杰斯板材结合的具体案例: 案例一:5G 通信基站天线 PCB 在 5G 通信基站的天线系统中,对高频信号的传输和处理要求极高。猎板 PCB 采用罗杰斯板材,凭借其稳定的低介电常数(如 RO4003C 板材&…...
使用esp32c3开发板通过wifi连网络web服务器
实验基本拓扑就是: esp32c3开发板通过Wifi模块连上局域网,局域网一台服务器通过FastAPI提供8000端口的web服务,在esp32c3开发板中烧录micropython固件,在python交互模式下,连上Wifi模块,并使用socket模块获…...
供应链管理、一件代发系统功能及源码分享 PHP+Mysql
随着电商行业的不断发展,传统的库存管理模式已经逐渐无法满足市场需求。越来越多的企业选择“一件代发”模式,即商家不需要自己储备商品库存,而是将订单直接转给供应商,由供应商直接进行发货。这种方式极大地降低了企业的运营成本…...
Windows docker下载minio出现“Using default tag: latestError response from daemon”
Windows docker下载minio出现 Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded 此类情况,一般为镜像地址问题。 {"registry-mirrors": ["https://docker.re…...
工厂模式-简单工厂模式
1、简单工厂模式 在工厂类的静态方法中,根据要创建产品的type类型,通过if else来返回对应的对象 1.1定义产品抽象接口Product /*** @desc 产品抽象接口**/ public interface Product {void use(); } 1.2 定义具体的产品A和B /*** @desc 产品A**/ public class ProductA i…...
【linux】使用minicom调试串口
在Linux中使用minicom进行串口通信调试,你需要先确保已经安装了minicom。如果还没有安装,你可以使用包管理器进行安装,例如在Debian或Ubuntu系统上使用apt-get,在Red Hat或CentOS系统上使用yum或dnf。 安装完成后,你需…...
C# 异常处理、多个异常、自定义异常处理
C# 异常 异常是为处理异常的发生而设计的,这些特殊情况会改变程序执行的正常流程。 引发或引发异常。 在执行应用期间,许多事情可能出错。 磁盘可能已满,我们无法保存文件。 当我们的应用尝试连接到站点时,Internet 连接可能会断…...
网站做定向的作用/网络营销主要做些什么
耳机逐渐成为了我们生活中不可缺少的一样电子设备,可以说是走到哪带到哪,特别是无线蓝牙耳机,摆脱了繁琐的线缆,对于经常出行的人来说确实是非常方便。而相比起真无线耳机,“挂颈式”的设计又来个更加方便使用…...
做营销型网站费用/百度网盘资源搜索引擎
MyBatis SqlSessionFactory和SqlSession 一,SqlSessionFactory Mybatis提供了构造器SqlSessionFactoryBuilder来生成SqlSessionFactory。 在 MyBatis 中,既可以通过读取配置的 XML 文件的形式生成 SqlSessionFactory,也可以通过Java代码生…...
国外做美食的网站有哪些/自己开发网站怎么盈利
MySQL主从复制 环境准备 软件及系统: CentOS7、MySQL5.7 系统环境准备: yum安装 或 源码安装 MySQL 5.7 ⚠️需要修改MySQL的安装仓库的设置, 开启5.7的安装源, 关闭8.0的安装源, 若不采用yum安装可使用源码部署 #####原理图: relay log 中继日志 流程图: #####Master-Slave架…...
wordpress4.9上传失败/小红书笔记关键词排名优化
一、前言 AlexNet是大神Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton三人提出的AlexNet深度卷积神经网络,摘得了2010年ILSVRC比赛的桂冠。虽然第一个典型的CNN是LeNet5网络结构,但是第一个引起大家注意的网络却是AlexNet。 二、LeNet LeNet是…...
建设兼职网站目的/合肥网络推广公司
前言 Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现 服务注册和发现。Eureka 采用了 C-S 的 设计架构。Eureka Server 作为 服务注册中心,系统中的 其他微服务,使用 Eureka 的 客户端 连接到 Eureka Server,并通过 心跳连接 检…...
wordpress 免费 主题下载/宁波网站推广运营公司
springboot实现企业微信机器人自动按时播报天气 第一步搭建项目。。。这个没有什么好说的 配置: <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.5</version&…...