LabHub
学习 学习路径 课程

Linux 基础

操作文件与目录

在 LabHub 中继续学习

目标

熟练掌握创建和移动文件与目录、通过链接建立关联,以及打包备份的完整流程。尤其要通过 inode 编号亲自确认硬链接与符号链接有何不同。

为什么重要

在 Linux 中,文件名不是实体本身,而是指向实体的引用。目录不过是(名称、inode 编号)组合的列表,数据真正的所有者是 inode。理解这一结构后,就能同时解释‘为什么 mv 移动 1GB 文件也能瞬间完成’、‘为什么执行 rm 后空间仍不减少’、‘为什么硬链接无法跨磁盘创建’。反之,如果不了解这一结构,就只能把这三种情况分别记成互不相关的异常现象。

步骤

  1. 创建 /root/work 目录。
  2. 创建 /root/work/hello.txt,并在第一行写入 hello labhub
  3. /etc/hostname 复制为 /root/work/hostname。内容必须与原文件完全相同。
  4. 一次性创建 /root/work/logs/2026/08 目录。
  5. /root/work/logs/2026/08 下创建从 app1.logapp5.log 的 5 个文件,再创建 /root/work/loglist.txt,每行只写一个文件的名称,不包含路径。
  6. 分别创建指向 hello.txt 的硬链接 /root/work/hello.hard 和符号链接 /root/work/hello.link
  7. 创建 /root/work/draft.txt 并写入一行 draft,然后将它移动/root/work/logs/2026/08/draft.txt
  8. 将整个 /root/work/logs 目录压缩打包为 /root/work/backup.tar.gz

提示

创建工作目录

创建 /root/work 目录。

创建目录的命令是 mkdir。路径必须严格为 /root/work。

创建第一个文件

创建 /root/work/hello.txt,并在第一行写入 hello labhub

可以把 echo 的输出重定向到文件,也可以用 vim 直接创建。

复制系统文件

/etc/hostname 复制为 /root/work/hostname。内容必须与原文件完全相同。

cp 会保留原文件并创建新文件。副本的内容必须与原文件完全相同。

一次创建嵌套目录

一次性创建 /root/work/logs/2026/08 目录。

默认情况下,如果父目录不存在,mkdir 就会失败。有一个选项可以连同上级路径一起创建。

提取日志文件列表

/root/work/logs/2026/08 下创建从 app1.logapp5.log 的 5 个文件,再创建 /root/work/loglist.txt,每行只写一个文件的名称,不包含路径。

使用 find 查找 .log 文件,但需要的不是完整路径,而只是文件名。可以考虑 -printf 或 basename。

硬链接与符号链接

分别创建指向 hello.txt 的硬链接 /root/work/hello.hard 和符号链接 /root/work/hello.link

ln 创建硬链接,ln -s 创建符号链接。使用 stat 比较 inode 编号(%i)和链接数(%h)。

移动文件

创建 /root/work/draft.txt 并写入一行 draft,然后将它移动/root/work/logs/2026/08/draft.txt

这里不是复制(cp),而是移动(mv)。原来的位置不能留下任何文件。

备份日志目录

将整个 /root/work/logs 目录压缩打包为 /root/work/backup.tar.gz

需要组合使用 tar 打包和 gzip 压缩的选项。必须包含整个 logs 目录。