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

相关文章
|
24天前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
263 1
二、Linux文本处理与文件操作核心命令
|
25天前
|
人工智能 数据可视化 测试技术
Postman 性能测试教程:快速上手 API 压测
本文介绍API上线后因高频调用导致服务器告警,通过Postman与Apifox进行压力测试排查性能瓶颈。对比两款工具在批量请求、断言验证、可视化报告等方面的优劣,探讨API性能优化策略及行业未来发展方向。
Postman 性能测试教程:快速上手 API 压测
|
3月前
|
JSON JavaScript 测试技术
用Postman玩转电商API:一键测试+自动化请求教程
Postman 是电商 API 测试的高效工具,涵盖基础配置、自动化测试、环境管理与请求自动化,助你快速提升开发效率。
|
9天前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
116 2
|
19天前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
68 0
Linux内存问题排查命令详解
|
24天前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
475 2
|
1月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
126 16
|
1月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
|
2月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
562 10
|
2月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
下一篇
oss教程