基础语法格式
rm [选项] 文件或目录名
核心选项详解(附示例)
选项 | 作用 | 示例 |
---|---|---|
-f |
强制删除(忽略提示和错误) | rm -f log.txt → 静默删除文件 |
-i |
交互式删除(推荐新手使用) | rm -i *.jpg → 删除前逐个确认 |
-r 或 -R |
递归删除目录及内容 | rm -r old_project/ → 删除整个目录 |
-d |
删除空目录 | rm -d empty_dir/ → 仅当目录为空时删除 |
-v |
显示操作详情(verbose) | rm -v report.pdf → 输出 removed 'report.pdf' |
高频使用场景示例
-
删除单个文件
rm backup.zip # 直接删除
-
批量删除匹配文件
rm *.tmp # 删除所有 .tmp 后缀文件 rm file{1..5} # 删除 file1 到 file5
-
递归删除非空目录
rm -r data_cache/ # 删除目录及其子文件
-
强制删除只读文件
rm -f read_only.log # 忽略权限警告
-
安全交互模式
rm -i *.log # 对每个文件询问: "rm: remove regular file 'a.log'?"
⚠️ 危险操作与避坑指南
-
*禁止执行
rm -rf /
或 `rm -rf /`**此命令会强制递归删除根目录下所有文件,导致系统崩溃。
-
避免通配符误删
- 错误示例:
rm -r * .txt
(空格误输导致删除所有文件) - 正确应为:
rm -r *.txt
- 错误示例:
-
替代方案:
trash-cli
工具
安装后使用trash-put
代替rm
,文件会进入回收站:trash-put important.doc # 可恢复的删除
安全使用建议
-
始终先预览
用ls
确认文件列表后再执行删除:ls *.bak # 查看所有 .bak 文件 rm -i *.bak # 确认后删除
-
设置
alias
默认交互模式
在~/.bashrc
中添加:alias rm='rm -i' # 每次删除前要求确认
-
重要数据备份
定期备份:rsync -a /source/ /backup/
总结关键点
操作需求 | 安全命令 | 风险等级 |
---|---|---|
删文件 | rm -i file |
|
删目录 | rm -r dir/ |
|
强制删 | rm -rf dir/ |
|
删空目录 | rm -d dir/ |
终极建议:
- 对关键目录(如
/home
、/etc
)操作前双重检查路径。- 生产服务器中尽量用
mv 到临时目录 + 定期清理
替代直接rm
。
引用说明:本文内容基于 GNU Coreutils 官方文档(rm 手册)、Linux Man Page 及 Sysadmin 最佳实践整理,操作前请务必理解命令后果,误删可能导致数据永久丢失。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6534.html