Linux命令-rm解读(删除文件或目录)
更新时间:2026年07月11日 10:20:35 作者:RisunJan
这篇文章主要介绍了Linux命令-rm解读(删除文件或目录),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
快速参考: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/passwd sudo 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/null read -p "确认删除?(yes) " ans [ "$ans" = "yes" ] && rm -f *.tmp
4. 排除特定文件的删除
# 删除除 keep.txt 外的所有文件 shopt -s extglob rm -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 -delete
7. 处理顽固文件
# 删除特殊字符文件名 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/profile alias 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中使用selenium截图的文字变为方框的解决方案
本文讲述了在Linux中使用Selenium截图时遇到的文字显示为方框的问题,原因在于缺少中文字体,作者详细介绍了在CentOs上安装宋体字体并配置字体环境的步骤,确保截图恢复正常显示,需要的朋友可以参考下2025-11-11
CentOS7+apache+php7+mysql5.7配置教程详解
这篇文章主要介绍了CentOS7+apache+php7+mysql5.7配置教程详解,需要的朋友可以参考下2017-10-10


最新评论