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

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

image.png

简介

在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命令时,根据需求选择合适的链接类型,从而更好地管理文件和目录,并提高系统的灵活性和可维护性。

相关文章
|
6天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
24 3
|
6天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
18 2
|
6天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
24 3
|
9天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
35 6
|
9天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
38 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
59 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
239 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
249 3
快速上手|HTTP 接口功能自动化测试
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
48 5
|
1月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
40 0