在 Linux 中实现硬链接

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本挑战中,你将探索 Linux 文件系统中的硬链接(hard links)概念。你将创建硬链接并修改文件内容,观察这些操作如何影响文件属性。

环境

LabEx 使用 Red Hat Universal Base Image 9 (UBI9) 来模拟考试环境。它可能与实际的 RHCSA 考试环境不完全相同,但能很好地代表你将遇到的任务。

环境中有两个用户:

  • labex:一个具有 sudo 权限的标准用户,密码为 labex
  • root:系统管理员,密码为 redhat

该挑战包含真实的考试题目,并配有解释、要求和自动化验证脚本,帮助你确认任务完成情况。它有效地模拟了 RHCSA 考试中涵盖的知识领域。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/ln("Link Creating") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") subgraph Lab Skills linux/ls -.-> lab-416102{{"在 Linux 中实现硬链接"}} linux/ln -.-> lab-416102{{"在 Linux 中实现硬链接"}} linux/cat -.-> lab-416102{{"在 Linux 中实现硬链接"}} end

创建和操作硬链接

任务

  1. 创建一个名为 hard1 的空文件
  2. hard1 创建两个硬链接:hard2hard3
  3. hard2 添加内容

要求

  • 所有文件必须创建在 /home/labex 目录下
  • 使用 touch 命令创建 hard1
  • 使用 ln 命令创建 hard2hard3
  • 使用 echo 命令将内容 "Redhat" 添加到 /home/labex/hard2
  • 使用 ls -li 显示所有三个文件的属性

示例

完成任务后,你应该会看到类似以下的输出:

$ ls -li /home/labex/hard1 /home/labex/hard2 /home/labex/hard3
1234567 -rw-r--r-- 3 labex labex 7 Aug 28 10:00 /home/labex/hard1
1234567 -rw-r--r-- 3 labex labex 7 Aug 28 10:00 /home/labex/hard2
1234567 -rw-r--r-- 3 labex labex 7 Aug 28 10:00 /home/labex/hard3

开头的数字是 inode 编号,对于指向同一文件的所有硬链接,该编号是相同的。请注意,所有文件的链接计数均为 3。

✨ 查看解决方案并练习

总结

在本挑战中,你探索了 Linux 文件系统中的硬链接(hard links)。你为同一文件创建了多个硬链接,观察到它们共享相同的 inode 编号,以及修改一个链接如何影响所有其他链接。此实验展示了 Linux 文件系统中 inode、硬链接和文件内容之间的关系。理解这些概念对于在 Linux 环境中进行有效的文件管理和存储至关重要,尤其是在处理文件系统、备份和数据组织时。