rm -rf 是高危命令,需确认路径、避免空格、禁盲目复制;删前用 ls -la、git status -s、mount 检查;可用 rm -ri 交互式删除、分步清空再 rmdir、find 配合 -print 预览或 -delete 精准清理。

rm -rf 是高危命令,必须先确认路径、避免空格、不盲目复制粘贴。它不会回收站,删完即永久丢失。
确认目标目录是否真要删
删之前花10秒看一眼内容,避免误删重要项目或配置目录。
- 运行
ls -la /path/to/target查看目录结构和权限 - 若是代码项目,确认没未提交的修改:
git status -s /path/to/target(如适用) - 检查是否挂载点:
mount | grep "/path/to/target",挂载目录强删可能引发异常
用 -i 或 --interactive 模式临时替代 -f
不想跳过确认,又怕漏删子项?可用 rm -ri 逐层询问:
-
rm -ri myproject→ 对每个文件/子目录都提示“remove ‘xxx’?” - 输入
y确认,n跳过,Ctrl+C中断整个操作 - 适合首次清理陌生目录,或含敏感配置文件的场景
分两步走:先清空再删目录本身
比一步到位更可控,尤其适合需保留目录结构但清内容的场合:
- 清空内部所有项(保留空目录):
rm -r /path/to/target/* - 注意:
*不匹配隐藏文件(如.env、.git),如需包含,加shopt -s dotglob再执行 - 确认为空后,用
rmdir /path/to/target删除目录(失败说明还有残留,可再查)
用 find + rm 做条件过滤删除
当只需删特定类型子项(比如只删 .log 文件,保留源码),避免全盘清除:
- 删除目录内所有日志文件但不动其他:
find /path/to/target -type f -name "*.log" -delete - 安全起见,先用
-print预览:find /path/to/target -name "*.log" -print - 删子目录但留顶层目录:
find /path/to/target -mindepth 1 -type d -exec rm -r {} +











