最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux命令-rm解读-删除文件或目录
时间:2026-07-12 08:59:51 编辑:袖梨 来源:一聚教程网
快速参考:rm 是 Linux 中永久删除文件和目录的核心命令。删除的文件不会进入回收站而是直接移除,rm -rf / 会删除整个系统,是 Linux 中最危险的命令之一。

危险警告:rm -rf / 会直接删除根目录下所有文件!rm 无回收站机制,删除不可逆!
回滚与安全措施
删除前务必确认路径;重要数据先 cp -a 备份;普通用户配合 rm -i;关键目录设置 chattr +i 防删。
# 备份后删除cp -a /important/data /backup/data_$(date +%Y%m%d)rm -rf /important/data# 恢复cp -a /backup/data_20260614 /important/data# 防止误删关键目录sudo chattr +i /etc/passwdsudo chattr -i /etc/passwd # 取消
命令语法
rm [选项] 文件 ...
常用选项
| 选项 | 说明 |
|---|---|
| -f | 强制删除,不提示确认 |
| -i | 交互模式,删除前逐一确认 |
| -r, -R | 递归删除目录及内容 |
| -v | 显示删除过程 |
| -d | 删除空目录 |
| --preserve-root | 禁止删除根目录(默认开启) |
| --no-preserve-root | 允许删除根目录(极度危险) |
场景化实例
1. 基本文件删除
# 删除单个文件rm old_file.txt# 交互式确认删除rm -i important.txt# rm: remove regular file 'important.txt'? y# 强制删除(不提示)rm -f temp.log
2. 递归删除目录
# 删除目录及所有内容rm -rf old_project_dir# 详细模式显示进度rm -rfv /tmp/cleanup_dir# 安全删除:先列出内容ls -la target_dir && rm -rf target_dir
3. 通配符批量删除
# 删除所有 .log 文件rm -f *.log# 删除特定模式文件rm -f temp_*.txt backup_*.tar.gz# 预览再删除echo "将删除以下文件:"ls *.tmp 2>/dev/nullread -p "确认删除?(yes) " ans[ "$ans" = "yes" ] && rm -f *.tmp
4. 排除特定文件的删除
# 删除除 keep.txt 外的所有文件shopt -s extglobrm -f !(keep.txt)# 使用 find 排除find . -maxdepth 1 -type f ! -name "keep_*" -delete# 使用 grep 排除ls | grep -v "important" | xargs rm -f
5. 安全删除脚本
#!/bin/bash# 安全删除:先移动到回收站目录TRASH_DIR="$HOME/.trash/$(date +%Y%m%d_%H%M%S)"safe_rm() { mkdir -p "$TRASH_DIR" for item in "$@"; do if [ -e "$item" ]; then mv "$item" "$TRASH_DIR/" echo "已移至回收站: $item -> $TRASH_DIR" else echo "不存在: $item" fi done}safe_rm "$@"# 清理 30 天前的"回收站"find "$HOME/.trash" -maxdepth 1 -type d -mtime +30 -exec rm -rf {} ;6. 查找并删除过期文件
# 删除 7 天前的临时文件find /tmp -type f -mtime +7 -delete# 删除大于 100M 的旧日志find /var/log -type f -name "*.log" -size +100M -mtime +30 -exec rm -f {} ;# 删除空目录find /data -type d -empty -delete7. 处理顽固文件
# 删除特殊字符文件名rm -- "-rf" # -- 停止选项解析rm ./-rf # 使用路径rm -- "--help"# 删除只读文件rm -f readonly.txt# 删除链接本身而非目标rm symlink_name
安全配置
# ~/.bashrc 添加 rm 别名alias rm='rm -i'alias rmf='rm -f'# 如需要强制删除:rm -rf (反斜杠跳过别名)# 系统级保护:/etc/profilealias rm='rm -i --preserve-root'
最佳实践
生产环境设置 alias rm='rm -i';重要目录用 chattr +i;定期检查 rm 历史记录。
# 删除前必须确认alias rm='rm -i --preserve-root'# 查找未删除的空目录find . -type d -empty# 查看最近删除记录cat ~/.bash_history | grep "^rm" | tail -20
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
您可能感兴趣的文章:- Linux命令rm如何删除名字以“-”开头的文件
- 防止Linux rm命令误操作的多场景防护方案与实践
- idea的终端(Terminal)cmd的命令换成linux的命令详解
- Linux执行Docker命令提示Get Permission Denied的解决方案
- Linux命令之-rm命令使用示例
相关文章
- 崩坏因缘精灵海游龙召唤条件说明 07-22
- 尽管工作室已关闭:Wreckreation 2 仍正式公布:距离前作发布仅九个月 07-22
- 率土之滨武将强度排行 率土之滨武将开荒搭配攻略表 07-22
- 挖掘者米娜怎样召唤伙伴成就攻略分享 07-22
- 仙灵物语最强阵容搭配攻略:仙灵物语高战力阵容推荐与实战解析 07-22
- 天堂2盟约怎么升级快:天堂2盟约快速升级技巧与高效练级指南 07-22