Linux网络操作系统-第7节-链接文件与命令进阶
「文件」在 Linux 里比 Windows 复杂一点也强大一点:一个文件可以有多个名字(硬链接),也可以做一个指路的牌子(软链接)。理解它们的关键是 inode。

一、inode 是什么
磁盘上每个文件由两部分组成:inode(存权限、大小、数据块位置等元信息)和数据块(真正的内容)。文件名反而不在文件里——目录只是「文件名 → inode 号」的对照表。
- 硬链接 ln 源 链接名:多加一条「名字→同一 inode」的记录,删掉源文件,数据照样在;
- 软链接 ln -s 源 链接名:一个独立的新文件(自己的 inode),内容只是路径,像 Windows 快捷方式,源一删就失效。
echo hello > src.txt ln src.txt hard.txt # 硬链接 ln -s src.txt soft.txt # 软链接 ls -i # 对比 inode 号 rm src.txt cat hard.txt # 还能读,数据还在 cat soft.txt # 报错 No such file
二、输入输出重定向
每条命令默认有三个「数据通道」:标准输入(键盘,0)、标准输出(屏幕,1)、标准错误(屏幕,2)。重定向就是把这些通道改接到文件:
| 写法 | 含义 |
|---|---|
| > file | 输出覆盖写入文件 |
| >> file | 输出追加到文件末尾 |
| 2> file | 只把错误信息写入文件 |
| &>/dev/null | 正确错误全部丢弃(/dev/null 是黑洞) |
ls /etc/*.conf > conf.list # 结果存文件 echo 新记录 >> app.log # 追加不覆盖 find / -name a 2>/dev/null # 拒绝看权限报错刷屏
验证硬链接最好的方式:echo 改内容,观察 hard.txt 与源同步变化;再看软链接删源即红(失效)。重定向则在第七节之后的每个实验都会反复用到。

