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

相关文章
|
25天前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
63 23
Linux系统之whereis命令的基本使用
|
1天前
|
网络协议 Shell 网络安全
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
“说说看,如果一个Pod的容器没有Shell,如何测试它能否访问外网?”
面试官想听的不仅是命令——如何结构化回答“容器无Shell时如何测试外网”?
|
12天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
76 25
|
10天前
|
缓存 Linux
Linux查看内存命令
1. free free命令是最常用的查看内存使用情况的命令。它显示系统的总内存、已使用内存、空闲内存和交换内存的总量。 free -h • -h 选项:以易读的格式(如GB、MB)显示内存大小。 输出示例: total used free shared buff/cache available Mem: 15Gi 4.7Gi 4.1Gi 288Mi 6.6Gi 9.9Gi Swap: 2.0Gi 0B 2.0Gi • to
25 2
|
2月前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
51 11
|
10月前
|
Linux Windows
Linux 软链接与硬链接
创建软链接 软链接是一个指向另一个文件或目录的引用,类似于Windows系统中的快捷方式。 ln -s [目标文件路径] [链接文件名] 例如,要在当前目录下创建一个名为link_file的软链接,指向/home/user/desktop/link,可以执行以下命令 ln -s /home/user/desktop/link link_file 这将创建一个软链接link_file,它实际上是指向/home/user/desktop/link的引用。
77 1
|
Linux 索引 Windows
Linux系统中“软链接”和“硬链接”的区别
Linux系统中“软链接”和“硬链接”的区别
144 0
|
测试技术 Linux
Linux中软链接与硬链接详细解读
本篇内容出自tiansir.com  原创 2017-12-8 目标: 1.测试环境模拟 2.软链接特性 3.硬链接特性 4.总结 1.测试环境模拟 1 2 3 4 5 6 7 8 9 10 11 12 13 [root@localhost home]# mkdir test .
1780 0

热门文章

最新文章