【Linux】软连接和硬链接:创建、管理和解除链接的操作

文章目录

    • [1. 软链接和硬链接简介](#1. 软链接和硬链接简介)
    • [2. Linux软链接使用方法](#2. Linux软链接使用方法)
    • [3. Linux硬链接使用方法](#3. Linux硬链接使用方法)
    • [4. 总结](#4. 总结)

1. 软链接和硬链接简介

  1. 什么是软链接

    软链接(Symbolic Link),也称为符号链接,是包含了源文件位置信息的特殊文件。它的作用是间接指向一个文件或目录。如果软链接的源文件被删除或移动了,软链接就打不开了。

  2. 什么是硬链接

    硬链接(Hard Link)指通过索引节点来进行链接。在Linux系统中,每个文件都有一个对应的索引节点,记录文件的日期,大小,所在块等信息。硬链接就是指向源文件索引节点的连接。删除源文件,不影响硬链接的访问。

  3. 软链接和硬链接的区别

    • 软链接是一个特殊的独立文件,它内容记录源文件位置;硬链接只是源文件的引用,不占用实际空间。
    • 删除软链接不影响源文件:删除源文件,软链接失效。删除硬链接不影响源文件,需将源文件和全部硬链接删除,源文件才会删除(换句话说,对于硬链接来说,删除了源文件,访问硬链接依旧有效)。
    • 软链接可以跨分区;硬链接不能跨文件系统。
    • 软链接可以针对目录;硬链接不能针对目录。

2. Linux软链接使用方法

  1. 创建软链接的语法

    powershell 复制代码
    ln -s 源文件或目录 软链接的文件或目录

    -s 参数表示创建的是软链接。

  2. 创建软链接文件示例

    powershell 复制代码
    # 将test.txt软链接到test_link
    ln -s test.txt test_link

    这样就在当前目录下创建了一个test_link的软链接文件,它指向test.txt。如下图,可以看到test_link ,箭头就表示它是一个链接。我们可以直接通过访问/修改test_link 来访问/修改test.txt的内容。

    使用ll命令可以看到软链接的相关信息:

    powershell 复制代码
    ll test_link
  3. 为目录创建软链接

    软链接可以为目录创建快捷方式,方式与为文件创建软链接类似:

    powershell 复制代码
    # 将/usr/local/dir1目录软链接到dir1_link
    ln -s /usr/local/dir1 dir1_link

    这样访问dir1_link就相当于访问dir1目录中的内容。

  4. 修改和删除软链接

    删除或修改软链接不会影响源文件/目录,它只是一个普通文件。

    powershell 复制代码
    # 删除软链接 
    rm test_link
    #或者
    unlink test_link
    powershell 复制代码
    # 修改软链接
    ln -sf test2.txt test_link

3. Linux硬链接使用方法

  1. 创建硬链接语法

    powershell 复制代码
    ln 源文件 硬链接名

    不使用-s参数默认创建硬链接。

  2. 创建硬链接示例

    powershell 复制代码
    ln test.txt test_hardlink

    这样就在当前目录下创建了一个test_hardlink的硬链接文件,指向test.txt

  3. 查看硬链接信息

    使用ll命令可以看到硬链接信息:

    powershell 复制代码
    ll test_hardlink

    可以看到test_hardlink是一个硬链接文件,指向test.txt, 索引节点相同。

  4. 修改和删除硬链接

    删除或修改硬链接不影响源文件,它只是一个目录项引用源文件的索引节点。

    powershell 复制代码
    # 删除硬链接
    rm test_hardlink 
    # 或者
    unlink test_hardlink
    # 修改硬链接内容
    vim test_hardlink
    源文件内容将跟着一起变化。
  5. 为目录创建硬链接

    硬链接无法针对目录进行创建。

    powershell 复制代码
    ln dir1 dir1_hardlink
    ln: failed to create hard link 'dir1_hardlink' => 'dir1': Invalid argument

4. 总结

  • 软链接通过指向源文件的路径建立链接,硬链接通过索引节点建立链接。
  • 软链接可以跨文件系统,硬链接不能。软链接可以对目录创建链接,硬链接不可以。
  • 删除软链接和硬链接都不影响源文件。
  • 解除软链接和硬链接,直接删除链接文件即可。
相关推荐
2301_780789663 分钟前
IPv6 洪水猛兽:DDoS 攻击面 3 倍扩张下的精准清洗新战法
运维·安全·web安全·ddos·devops
程序员-Benothing9 小时前
Linux安全加固指南:账号、权限、服务、审计基线
linux·运维·安全
Mininglamp_27189 小时前
接口调用 vs 屏幕理解:两种 GUI 自动化架构的技术取舍
运维·架构·自动化
Cry丶10 小时前
ubuntu安装vsftpd
服务器·网络·ubuntu
爱喝水的鱼丶11 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
木子欢儿12 小时前
openconnect Linux客户端安装 以及开机自启和登录
linux·运维·服务器
..Dauntless..12 小时前
【Linux】文件系统(一)
linux·运维·服务器
天空属于哈夫克312 小时前
企业微信API二次开发 赋能私域运营自动化
运维·自动化·企业微信
天远API13 小时前
零信任架构实战:基于天远运营商二要素V即时版构建自动化分时租赁出行会员身份一致性审核网关
运维·人工智能·架构·自动化
九零HTTP13 小时前
10月21号-CSDN配菜-IP池的5个坑
服务器·数据库·tcp/ip