软件测试|Linux基础教程:ln命令与软链接和硬链接

简介

在Linux系统中,ln命令是一个非常有用的工具,用于创建链接(link),将一个文件或目录链接到另一个位置。链接允许一个文件或目录可以同时存在于多个位置,而不会占用额外的磁盘空间。ln命令支持创建硬链接和软链接两种类型的链接。本文将详细介绍Linux中ln命令的用法、语法以及两种链接类型的区别。

基本语法

ln命令的基本语法如下:

ln [OPTION]... <target> <link_name>

参数说明

  • [OPTION]:可选参数,用于指定额外的选项。
  • <target>:目标文件或目录的路径。即要链接的源文件或目录。
  • <link_name>:链接的名称,即创建的链接的文件名或目录名。

option常用参数

  • -s:建立软链接文件。如果不加 "-s" 选项,则建立硬链接文件
  • -f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件
  • -i:在创建链接之前进行交互式确认
  • -n:把符号链接视为普通文件
  • -v:显示详细的输出信息

创建硬链接

要创建一个硬链接,只需在ln命令后面跟上目标文件或目录的路径以及链接的名称。硬链接会在文件系统中创建一个新的目录项,并与目标文件或目录共享相同的inode(文件索引节点)和数据块。

示例:

我们有一个文件fruits.txt,我们要在当前目录下创建一个名为hard_link.txt的硬链接:

muller@ubuntu:~/demo$ ls
awk.sh  fruits.txt  number.txt  player.txt  text.txt
muller@ubuntu:~/demo$ ln fruits.txt hard_link.txt
muller@ubuntu:~/demo$ ls
awk.sh  fruits.txt  hard_link.txt  number.txt  player.txt  text.txt
muller@ubuntu:~/demo$ cat hard_link.txt 
apple
APPLE
banana
BANANA
ORANGE
orange
grape
Grape
good
Good
apple
orange
orange
orange

**注:硬链接不能链接目录,只能链接文件。如果尝试使用ln命令链接目录,会出现错误信息。**如下图:

创建软链接

软链接是一个特殊的文件,它包含了指向另一个文件或目录的路径。创建软链接需要使用ln命令,并加上-s选项。

示例

  1. 创建文件软链接

我们有一个文件fruits.txt,我们要在当前目录下创建一个名为soft_link.txt的软链接:

muller@ubuntu:~/demo$ ln -s fruits.txt soft_link.txt
muller@ubuntu:~/demo$ ls
awk.sh  fruits.txt  hard_link.txt  number.txt  player.txt  soft_link.txt  text.txt
muller@ubuntu:~/demo$ cat soft_link.txt 
apple
APPLE
banana
BANANA
ORANGE
orange
grape
Grape
good
Good
apple
orange
orange
orange
  1. 创建目录软链接

我们在当前目录下,创建salah目录的软链接,名为soft_link
 

muller@ubuntu:~/salah$ ln -s /home/muller/salah /home/muller/soft_link
muller@ubuntu:~$ ls
demo  Desktop  Documents  Downloads  Music  Pictures  Public  salah  snap  soft_link  Templates  Videos
muller@ubuntu:~$ ls -l
total 44
drwxrwxr-x 2 muller muller 4096 Jul 23 16:20 demo
drwxr-xr-x 2 muller muller 4096 Jul 20 16:04 Desktop
drwxr-xr-x 2 muller muller 4096 Jul 20 16:04 Documents
drwxr-xr-x 2 muller muller 4096 Jul 20 18:19 Downloads
drwxr-xr-x 2 muller muller 4096 Jul 20 16:04 Music
drwxr-xr-x 2 muller muller 4096 Jul 20 16:04 Pictures
drwxr-xr-x 2 muller muller 4096 Jul 20 16:04 Public
drwxrwxr-x 2 muller muller 4096 Jul 23 16:30 salah
drwx------ 4 muller muller 4096 Jul 20 16:59 snap
lrwxrwxrwx 1 muller muller   18 Jul 23 16:49 soft_link -> /home/muller/salah
drwxr-xr-x 2 muller muller 4096 Jul 20 16:04 Templates
drwxr-xr-x 2 muller muller 4096 Jul 20 16:04 Videos

我们也可以看到,软链接指向了/home/muller/salah目录。

注:创建目录软链接时,源文件必须写绝对路径

软链接与硬链接的区别

软链接和硬链接是两种不同类型的链接,它们有以下区别:

  • 链接类型:软链接是一个指向目标的快捷方式,而硬链接是共享相同数据块和inode的文件副本。
  • 跨文件系统:软链接可以跨越文件系统进行链接,而硬链接不能。
  • 链接目录:软链接可以链接目录,而硬链接不能。
  • 原文件删除后:软链接在原文件被删除后会失效,成为“断链”,而硬链接仍然可以访问数据,只有当所有硬链接和原文件都被删除后,磁盘空间才会释放。

总结

ln命令是Linux系统中用于创建硬链接和软链接的重要工具。硬链接与原文件共享相同的inode和数据块,效率高,但不能跨文件系统链接和链接目录;而软链接是一个指向目标的快捷方式,允许跨文件系统链接和链接目录,但效率较低。在使用ln命令时,根据需求选择合适的链接类型,从而更好地管理文件和目录,并提高系统的灵活性和可维护性。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

TS内置的Readonly<T>

不要使用内置的Readonly<T>&#xff0c;自己实现一个。 泛型 Readonly<T> 会接收一个 泛型参数&#xff0c;并返回一个完全一样的类型&#xff0c;只是所有属性都会是只读 (readonly) 的。 也就是不可以再对该对象的属性赋值。 例如&#xff1a; interface Tod…

202312 青少年软件编程等级考试Scratch一级真题(电子学会)

2023年12月 青少年软件编程等级考试Scratch一级真题&#xff08;电子学会&#xff09; 试卷总分数&#xff1a;100分 试卷及格分&#xff1a;60 分 考试时长&#xff1a;60 分钟 第 1 题 单选题 观察下列每个圆形中的四个数&#xff0c;找出规律&#xff0c;在括…

用通俗易懂的方式讲解:2024 检索增强生成技术(RAG)研究进展

本篇内容1w字左右&#xff0c;稍微有点长&#xff0c;相对不容易理解&#xff0c;喜欢可以收藏、关注、点赞。 一、前言 在过去的一两年里&#xff0c;人工智能领域目睹了检索增强生成技术&#xff08;RAG&#xff09;的迅猛发展&#xff0c;这种技术结合了强大的语言模型与信…

程序员副业之AI情侣头像(手把手超详细完整全流程)

项目介绍 小黑今天给咱们分享个轻松简单的项目&#xff0c;每天不会超过半小时&#xff0c;就是用AI制作情侣头像&#xff0c;在抖音上变现。听起来是不是很科幻&#xff1f;但实际上效果杠杠的&#xff01; 最关键的是&#xff0c;收入方面&#xff0c;一单9块9&#xff0c;…

深入了解性能测试工具:优化应用性能的关键步骤

在当今数字化时代&#xff0c;应用程序性能是保持用户满意度和业务成功的关键因素之一。性能测试工具是开发和测试团队的宝贵资源&#xff0c;可以帮助识别和解决潜在的性能瓶颈&#xff0c;确保应用程序在各种负载条件下都能表现出色。本文将介绍性能测试工具的重要性、及它们…

计算机缺失vcomp120.dll文件怎么办?总结多种解决方法分享

在使用电脑过程中&#xff0c;难免会遇到各种问题&#xff0c;其中vcomp120.dll丢失问题就是其中之一。这个问题可能会给用户带来诸多不便&#xff0c;导致某些应用程序无法正常运行。在这篇文章中&#xff0c;我们将详细介绍vcomp120.dll文件的重要性&#xff0c;以及遇到丢失…

MySQL8.0更新的内容

官网地址&#xff1a;MySQL :: MySQL 8.0 Reference Manual :: 1.3 What Is New in MySQL 8.0 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. Mysql8.0参考手册 / 一般信息 /什么是在mysql8.0的新内容 1.3如何…

点灯大师的第一步 -imx6ull

实验目的 编写linux 的驱动程序&#xff0c;并移植到IMX6ULL -MINI开发板上&#xff0c;实现将 LED灯点亮&#xff0c;并周期性闪烁&#xff0c;周期间隔可调节的功能。出现的问题 2.1 点灯 2.1.1 设备加入到设备树中 设置pin 功能与 GPIO功能 PIN功能(PAD功能)又分为电气特性(…

vue2导出excel,合并单元格的表格

1.先引入一个js文件&#xff0c;作为主要导出函数 /* eslint-disable */ import fileSaver from file-saver // import Blob from /vendor/Blob import xlsxDist from script-loader!xlsx/dist/xlsx.core.min require(script-loader!file-saver); import XLSX from xlsx-style…

MySQL8快速安装以及配置小技巧

安装 首先去官网下载&#xff0c;地址是这个 我选择的是Windows (x86, 64-bit), ZIP Archive。解压到一个目录&#xff0c;然后按照下面的命令执行 cd /d/mysql-8.2.0-winx64/bin ./mysqld --initialize --console # 上面这个命令执行完成之后控制台会输出临时密码&#xff0…

TS 36.211 V12.0.0-下行(6)-同步信号

本文的内容主要涉及TS 36.211&#xff0c;版本是C00&#xff0c;也就是V12.0.0。

腾讯云服务器(免费1个月)申请流程

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云百科txybk.com分享2024年最新腾讯云免费服务器…

数据结构与算法Python版:计数排序

简介&#xff1a;计数排序是一个非基于比较的排序算法&#xff0c;该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时&#xff0c;它的复杂度为Ο(nk)&#xff08;其中k是整数的范围&#xff09;&#xff0c;快于任何比较排序算法。当然这是一种…

如何利用ssh将手机连接电脑

首先我们需要下载ssh&#xff0c;因为我们没有安装 sshd 命令意思是开启ssh 下载完以后要设置密码&#xff0c;我设置得是 123456 开启服务&#xff0c;查看ip 电脑连接 ssh 刚刚得ip -p 8022 后面就连接上了 我可以在这里启动我手机上的vnc

UG装配-爆炸图

当我们将零件装配成总成的时候&#xff0c;通常需要绘制爆炸图来说明总成零件组成&#xff0c;需要用到爆炸图命令&#xff0c;首先点击新建爆炸&#xff0c;然后为爆炸图命名 然后我们可以选择编辑爆炸或者自动爆炸&#xff1a; 编辑爆炸是通过手动的方式选择部件&#xff0c…

计算机网络学习笔记(四)

文章目录 1.介绍一下HTTPS的流程。2.介绍一下HTTP的失败码。3.说一说你知道的http状态码。4. 301和302有什么区别&#xff1f;5.302和304有什么区别&#xff1f;6. 请描述一次完整的HTTP请求的过程。7.什么是重定向&#xff1f;8. 重定向和请求转发有什么区别&#xff1f;9.介绍…

Java研学-Servlet3.0文件上传下载

一 文件上传 1 介绍 用户选择本地文件资源保存到服务器上&#xff0c;Servlet需要将二进制数据以文件保存到服务器磁盘中&#xff0c;再将磁盘路径保存到数据库中 2 项目搭建 创建web项目&#xff0c;并添加对应jar包(JSTL) 3 API HttpServletRequest 方法–从请求中解析上…

DeepPurpose 生物化学深度学习库;蛋白靶点小分子药物对接亲和力预测虚拟筛选

参考: https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/107649770 https://github.com/kexinhuang12345/DeepPurpose ##安装 pip install DeepPurpose rdkitDeepPurpose包括: 数据: 关联TDC库下载,是同一作者开发的 https://blog.csdn.net/weixin_42357472/artic…

ARM CCA机密计算架构软件栈之软件组件介绍

在本节中,您将了解Arm CCA的软件组件,包括Realm World和Monitor Root World。以下图表展示了Arm CCA系统中的软件组件: 在这个图表中,世界之间的边界显示为粗虚线。由较高权限的软件强制执行的较低权限软件组件之间的边界显示为细虚线。例如,非安全EL2处的虚拟机监视器强制…

python项目使用docker的方式部署,docker compose的方式启动

要将 Python 项目打包并发布到 Docker Hub&#xff0c;然后使用 Docker Compose 部署到正式环境&#xff0c;您需要执行以下步骤&#xff1a; 打包 Python 项目并发布到 Docker Hub 创建 Dockerfile: 确保您已经有一个适用于您的 Python 项目的 Dockerfile。这个文件定义了如何…