简介
创建东西很有趣,但有时也需要清理它们。
在 Windows 或 macOS 中,删除的文件会进入「回收站」,之后仍然可以恢复。 Linux 则不同。 在终端中删除文件后,文件会立即永久消失。
可以把 Linux 的 rm 命令想象成一台碎纸机。文件一旦被送进去,就没有「撤销」按钮了。
这是命令行的强大功能第一次显得危险的场景之一。除非工具经过专门配置,否则 shell 通常不会询问「你确定吗?」Linux 默认认为你输入的内容就是你的真实意图。
在本实验中,你将学习如何:
- 删除单个文件(
rm)。 - 安全删除空目录(
rmdir)。 - 强制删除包含内容的目录(
rm -rf)。
删除文件
先练习删除一个文件。
首先,查看当前目录中的内容:
ls -l
你应该能看到 file_to_delete.txt。
现在使用碎纸机删除它。这里使用 rm 命令(remove 的缩写)。
rm file_to_delete.txt
如果命令执行成功,终端不会显示任何内容,只会直接完成删除操作。
检查该文件是否还存在:
ls -l
文件已经消失了。
重要: 按 Enter 键之前,务必再次确认文件名。删除后无法恢复。
这项注意事项不仅适用于初学者。即使是经验丰富的管理员,在执行破坏性命令前也会放慢速度,尤其是在以 root 身份操作或使用通配符时。
删除空目录
现在尝试删除一个目录。当前有一个名为 empty_dir 的目录。
对于空目录,Linux 提供了一个安全工具:rmdir(Remove Directory,删除目录)。
rmdir empty_dir
确认该目录已经消失:
ls -F
删除成功了!不过,如果目录中包含任何内容,rmdir 会拒绝删除该目录。这就是一个安全锁。
尝试使用 rmdir 删除包含文件的 data_dir:
rmdir data_dir
你应该会看到以下错误:rmdir: failed to remove 'data_dir': Directory not empty。这是 Linux 在保护你,避免意外丢失数据。
这种行为使 rmdir 成为相对安全的工具。它只会删除已经为空的目录,因此当你需要一个内置安全边界的删除命令时,使用它很合适。
递归删除
有时,你可能需要彻底删除整个目录及其所有内容。
要删除目录以及其中的所有内容,可以为 rm 命令添加两个功能强大的选项:
-r(递归):进入每一个子目录。-f(强制):不进行询问。
组合使用后,它们就构成了「推土机」:rm -rf。
在 Linux 文化中,人们经常讨论这个组合,因为它功能强大,也很容易误用。一个小小的输入错误就可能完全改变目标,因此人们对 rm -rf 格外谨慎。
现在彻底删除 data_dir:
rm -rf data_dir
确认删除结果:
ls
其中的内容已经全部消失。
警告: rm -rf 是 Linux 中最危险的命令。如果对错误的目录运行该命令,就很难恢复。务必再次检查拼写!
更深层的教训是命令的作用范围。在对破坏性命令按下 Enter 键之前,必须明确 shell 将要操作的具体路径和匹配模式。
总结
你已经学会了如何清理系统。
rm file:碎纸机,用于删除文件。rmdir dir:安全删除工具,用于删除空目录。rm -rf dir:推土机,用于删除包含内容的目录。
能力越大,责任越大。请谨慎使用 rm -rf!
在本模块的最后一个实验中,你将学习如何使用通配符批量选择文件。



