首页 > 系统相关 >软件测试|Linux基础教程:ln命令与软链接和硬链接

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

时间:2023-08-21 18:00:37浏览次数:50  
标签:ln Jul 链接 link txt muller 软件测试

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

简介

在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命令链接目录,会出现错误信息。**如下图:

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

创建软链接

软链接是一个特殊的文件,它包含了指向另一个文件或目录的路径。创建软链接需要使用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命令时,根据需求选择合适的链接类型,从而更好地管理文件和目录,并提高系统的灵活性和可维护性。


标签:ln,Jul,链接,link,txt,muller,软件测试
From: https://blog.51cto.com/u_15640304/7178136

相关文章

  • Linux7.9安装LNMP
    1、安装MariaDB/MySQLCentOS/RHEL7使用了MariaDB替代了默认的MySQL。作为MySQL的简单替代品,MariaDB保证了与MySQL的API和命令行用法方面最大的兼容性。下面是关于怎么在CentOS7上安装和配置MaraDB/MySQL的操作示例。yuminstallmariadb-serversystemctlstartmariadbs......
  • telnet:Login incorrect
      问题描述:telnet服务端和客户端的telnet服务均正常,并且防火墙也是关闭的,但是根据提示输入用户名和密码后,还是无法连接连接到telnet客户端,如下图,提示:Loginincorrect(登录不正确),但是用户名和密码是完全正确的;解决办法:查看telnet客户端日志: cat/var/log/secure看到......
  • 软件测试 | 在Linux平台下安装MySQL
    在Linux平台下安装和Windows平台有所不同,不能用图形化的方式来安装,并且在Linux下支持3种安装方式:RPM包、二进制包、源码包。下面以RPM包为例来介绍如何在Linux平台下进行MySQL的安装,其他安装方式还会在本书第4篇的第24章中进行详细介绍。RPM是RedhatPackage......
  • 软件测试 | 在Windows平台安装MySQL
    Window平台下的安装包主要有两种,一种是noinstall包,顾名思义,不需要安装就可以直接使用;另一种是.zip安装包,可以通过图形化界面进行安装。下面分别就两种安装方式进行介绍。1.noinstall安装在Windows平台下安装MySQL,其安装步骤非常简单:将下载的文件mysq......
  • Lnton羚通算法算力云平台在环境配置中当使用conda创建新的虚拟环境时为什么会遇到错误
    当使用conda创建新的虚拟环境时遇到错误,可能是由于以下一些常见原因导致的:Conda环境未正确安装:请确保你已经正确安装了Conda,并且设置了正确的环境变量。你可以尝试在终端中运行conda--version来验证Conda是否已经成功安装并可用。网络连接问题:Conda在创建新的虚拟环境时会从远程下......
  • Lnton羚通算法算力云平台当在NanoPi R6C上更换源时遇到错误该怎么解决
    你在NanoPiR6C上更换源时遇到错误,可能是由于以下原因导致的:源地址错误:请确保你使用的是有效的源地址。建议使用官方镜像源或者稳定可靠的镜像源。可以尝试更换不同的源地址再次尝试。网络连接问题:请确保NanoPiR6C设备已经正确连接到互联网,并且网络连接是正常的。你可以尝试通过其......
  • vulnstack1 红日靶场渗透详解
    目录环境搭建信息收集PhpMyAdmin后台GetshellintooutfileMysql日志文件写入shellCS后渗透MSF后渗透知识补充nmap参数分类参数速查表dirsearch环境搭建ip段设置kali(coleak):192.168.145.139Windows7(stu1):192.168.10.181、192.168.145.140Winserver2008(owa):192.168.1......
  • 软件测试 | 什么时候使用表锁
    对于InnoDB表,在绝大部分情况下都应该使用行级锁,因为事务和行锁往往是我们之所以选择的InnoDB表的理由。但在个别特殊事务中,也可以考虑使用表级锁。第一种情况是:事务需要更新大部分或全部数据,表又比较大,如果使用默认的行锁,不仅这个事务执行效率低,而且可能造成其他事务长时间锁等待和......
  • LNMP集群架构
    网站集群拆分上一节我们是部署了单机的LNMP,再往下,要进行拆分了,无论是性能、还是安全性,都务必要拆分。拆分的内容有nginx集群mysqlnfs共享存储等 拆分思路情况1当前的单机环境已经装好了,数据也都有了,需要拆分到多个机器需要考虑数据迁移情况2初试环境直接以集......
  • Lnton羚通算法算力云平台如何在OpenCV-Python中使用cvui库创建复选框
    CVUI之复选框Pythonimportnumpyasnpimportcv2importcvuidefcheckbox_test():WINDOW_NAME='Checkbox-Test'checked=[False]#创建画布frame=np.zeros((300,400,3),np.uint8)#初始化窗口cvui.init(WINDOW_NAME)while......