50% off 所有套餐限时优惠,起价 $2.48/mo
12 min left
Servers & OS

如何安全删除 Linux 中的目录:rmdir、rm -r、find

Nick Silver By Nick Silver 12 min read Updated Sep 22, 2025
一台孤独的超逼真笔记本电脑,以3/4角度放在湿润表面上;屏幕显示两行清晰的终端命令:ls -ld -- '$DIR' rm -I -r -- '$DIR' 从笔记本右侧端口,一条青色/品红色全息丝带弧形延伸出去,连接到笔记本右侧漂浮的牛皮纸文件夹;文件夹右半部分在空中散裂成细纸粉。采用BR2049光影风格,紫外线轮廓光,细雨飞溅,钠灯琥珀色雾霭加单一低矮天际线。

选对工具,在 Linux 中删除文件夹就像轻而易举一样简单。使用 rmdir 用于空路径, rm -r 用于包含内容的目录,以及 find 当你只想清空内部内容时。这就是 如何在 Linux 中删除目录的全部内容,配有安全的默认设置、快速检查和错误修复。如果你追求速度,可以先看快速参考表,然后继续阅读完整的安全说明。

 

 

命令概览:复制、粘贴、继续

在深入讲解之前,这里汇总了高频操作。从中间列复制,然后按照说明应用。

Task 最安全的快速命令 额外选项或说明
删除空目录 rmdir DIR or rm -d DIR Add -p 删除父目录(如果它们变成空的)。
删除非空目录,首次提示确认 rm -I -r DIR 兼顾速度和安全。
强制删除非空目录 rm -rf — DIR Verify with ls -ld — DIR 运行前请确认。
保留父目录,清空内容 find DIR -mindepth 1 -delete 处理隐藏文件和文件夹。
仅删除空目录 find DIR -type d -empty -delete 部署后的清理工作。
按名称模式删除 find DIR -type d -name 'cache*' -prune -exec rm -rf {} + 在大型目录树上运行速度很快。

在处理如何删除 Linux 中的目录时,把这个快照放在手边。 

删除空目录用 rmdir or rm -d

超逼真的钢制文件柜抽屉完全拉开,导轨和毛毡垫清晰可见,绝对空空如也。前面有微小的压纹标签:RMDIR 和 EMPTY。柔和的钠灯琥珀色雾霭飘过模糊的天际线轮廓;青色标识沿着拉丝金属边缘闪烁;微小颗粒和细微划痕真实可见。

Empty directories 风险最低。如果只需要删除一个叶节点, rmdir 正好能做到;如果你倾向于保持在 rm, use rm -d 会得到相同的结果。两个命令都会在 非空路径处停止,这给初学者在学习如何在终端中删除目录时提供了一个有用的保障。

  • rmdir PROJECT/tmp 删除空文件夹,如果文件夹不存在则无提示返回。
  • rmdir -p foo/bar/baz 删除路径及其所有空的父目录,一次性清理搭建过程中的临时文件。
  • rm -d empty_folder 仅在目录为空时删除,对应的命令是 rmdir 为那些长期依赖 rm.
  • rmdir –ignore-fail-on-non-empty DIR hides the “not empty” error text in scripts where noise matters.
  • Add -v 例如,获取反馈 rmdir -pv foo/bar/baz.

在 Linux 中删除目录时的常见问题是,如果文件夹中仍有文件, rmdir 拒绝运行。这时候你就该用递归了。 

Also Read: 使用 XRDP 连接到 Linux 服务器

用以下命令删除非空目录 rm

一台超写实的工业碎纸机是画面的绝对主角,进纸口里塞满了多个牛皮纸文件夹和分隔页。文件夹鼓鼓囊囊地装着纸张。机器前面有个小金属铭牌写着 RM -R;旁边一个小危险标志写着 FORCE。

Recursive removal is rm -r or rm -rf。基本上就是速度和提示词的取舍。学习如何在 Linux 中删除非空目录的开发者通常从 rm -r 然后添加提示词。使用自动化的团队可以 -f 在他们锁定路径检查后。

从让你安心的方案开始:

  • Prompt once: rm -I -r DIR 在下降前询问一次,比起以下方案更合适 -i on large trees.
  • 万能提示词: rm -ri DIR 速度较慢,但在处理小型数据树时很有用,能让你看清每一步。
  • 强制递归: rm -rf DIR 跳过提示和大部分错误;请通过以下方式验证 pwd, ls -ld — DIR, and an echo “$DIR” 在你按下 Enter 之前。
  • Verbose: -v 打印每个删除的路径,例如 rm -rfv build/.
  • Root 和挂载保护:现代系统会阻止 rm -rf / via –preserve-root; in scripts, add --one-file-system 这样你就不会跨越挂载点。

在繁忙的机器上强制删除前,花半分钟验证一下目标。用以下命令打印它 ls -ld — “$DIR”,然后查看引用和通配符。在 Linux 中学习如何删除目录的最佳方式是亲自尝试 -I 先手动执行一次,然后以非交互方式重复。稳定的检查,可重复的工作流。

linux-vps Linux 主机服务简化版

想要更好的方式来托管网站和网络应用?正在开发新项目?或者只是不喜欢 Windows?这就是我们提供 Linux VPS 的原因。

获取你的 Linux VPS

奇怪的名称、开头的破折号和隐藏陷阱

拉紧的警示胶带横跨整个画面,超逼真的乙烯基纹理带有细微褶皱。黑色印刷在每个 CAUTION 后以间隔重复 -TMP。

某些路径以破折号开头或包含会干扰解析的字节。请传递 停止选项解析,或添加 ./ 在名称前面。

安全的方式来定向非主流名称:

rm -r -- --weird
rm -r ./-cache

这些小技巧让你在 Linux 上删除目录时,对共享服务器和远程会话的压力大大降低。如果你需要保留父目录但删除其中的内容,可以切换到深度感知命令。我们的《Linux 目录删除指南》接下来会讲到这个。

保留文件夹,清空其中的内容

Ultrareal manila folder with a small bottom trapdoor built into the tab-side corner, hinged and slightly open so a faint stream of holographic “file shards” falls away. Etched on the tab: FIND and MIND1 (for -mindepth 1)

很多工作需要一个干净的目录,而不是缺失的目录。日志轮转、构建管道、VPS 维护工作。两种模式涵盖了如何在 Linux 中删除目录内的所有文件,同时保留父目录的方法。

  • 跳过父级 find:
find /var/tmp/app -mindepth 1 -delete
  • Or execute rm on batches:
find ./cache -mindepth 1 -exec rm -rf {} +

两者都能处理隐藏条目(包括点文件),这正是简单的 rm * 漏掉了。如果你想知道怎样删除 Linux 中目录里的所有文件,这是靠谱的办法。

一行命令很方便,但很多团队需要按名称或深度筛选。这就是 find 让你清楚知道自己能做什么,无需瞎猜。

Also Read: 列出 Linux 上正在运行的服务

精准删除功能 find:名称、深度、修剪

你可能只想清除缓存树、只想清除顶级构建文件夹,或只想清除归档日志。以下是一套精简的匹配模式 查找并删除目录 jobs.

Task Command snapshot Notes
Remove only cache*/ 项目下的目录 find . -type d -name 'cache*' -prune -exec rm -rf {} + -prune 跳过匹配项,在大型目录树中更快。
按深度删除目录 find ./dist -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} + 仅针对下一级子目录 dist/.
仅删除空目录 find . -type d -empty -delete 部署后的清理工作。
删除匹配模式的文件 find logs -type f -name '*.gz' -delete 保留新的日志文件。
删除全部但保留父目录 find /data/tmp -mindepth 1 -delete 服务继续使用父目录。

Use -print 先做一次演练,再正式执行。这是在 Linux 上删除目录的实际做法,范围可控、执行迅速。Gotcha,在某些最小化 BusyBox 构建上 -delete 操作缺失;使用 -exec rm -rf {} + instead.

这些模式能覆盖大多数场景。加上几个保护措施,防止那些罕见但代价巨大的错误。

保护措施,防止误操作

一个超实用的机械锁定/标记装置加挂锁,拉丝钢和磨损的红色漆面,锁销上有水珠凝结;纤维安全标签挂在挂锁上,三行粗体刻字:RM -I、ONE FS、PRESERVE ROOT。

强大的命令需要谨慎的默认设置。培养这些习惯,这样在 Linux 上用命令删除目录就不会也删除你的理智。

  • 优选单条提示加 rm -I -r DIR 一边在屏幕上验证路径。
  • 每次都给路径加引号: rm -rf — “$DIR” 防止空格、通配符和以破折号开头的文件名出现问题。
  • 确认确切目标: ls -ld — “$DIR” 输出一行,显示权限、所有者和路径。
  • 保持在文件系统内 rm -rf –one-file-system "$DIR" 防止跨入挂载卷。
  • 根保护保持开启,继续 –preserve-root in place.
  • 需要时清除不可变位: lsattr -d “$DIR” to check, chattr -i “$DIR” to remove it.

如果删除仍然失败或卡住,逐一排查常见原因。

在 Cloudzy 的 Linux VPS 上运行清理测试,然后继续开发

一台超逼真的 1U 机架服务器稳稳地坐在云上(云 = VPS)。一条短 SFP+ 光纤跳线将服务器连接到一台以 3/4 角度放置的开放笔记本。笔记本的玻璃屏终端上,两行大型凸起雕刻文字:RM -I -R 和 ROLLBACK(切换指示灯亮起)。机架面板上,小徽章标识:NVME、10 GBPS、DDR5。

如果你需要一个稳定的远程服务器来尝试 rm, rmdir, and find safely, spin up Linux VPS 主机 并在干净的 shell 中工作。它价格实惠、速度快,可用于 12 global locations with 11 Linux distributions 开箱即用。你会获得 root access, NVMe SSD storage, and DDR5 RAM 在现代方案中,加上 DDoS protection and a 99.95% uptime 承诺。高带宽和低延迟是标准配置,连接速度可达 10 Gbps 列于方案卡上。

  • Global footprint:在超过 12 个位置部署,包括纽约、洛杉矶、迈阿密、阿姆斯特丹、伦敦、德国、瑞士、犹他州、达拉斯、拉斯维加斯和新加坡,为你的用户提供更快的路由。
  • 根访问权限 + 11 个发行版:选择你想要的 Linux 并从第一天起保持完全控制。
  • Modern hardware:NVMe SSD 存储和 DDR5 RAM 为实例提供动力;在高负载 I/O 期间性能保持锐利。
  • Network + uptime:低延迟连接、高带宽和 99.95% 的正常运行时间目标帮助定时作业按时运行。
  • Security:DDoS 保护跨所有服务器包含,因此日常维护中断的可能性较小。
  • Convenience:预装操作系统选项、免费 IPv6 和多种支付方式让设置简单直接。

偏好完整桌面?结账时选择 Linux RDP 一键应用。它提供带有 Linux VPS 的 XRDP, GDM3, and the GNOME GUI pre-installed on Ubuntu,所以你可以一键远程连接。它在相同的 12 个位置运行,并保持 99.95% uptime target. There is no extra fee 用于预装的 RDP 配置。

简单来说,启动一个平价的 Linux VPS,选择你的发行版,保留 root 权限,购买时如果需要可以添加 Linux RDP 桌面环境。然后交互式地练习删除操作、创建快照,反复操作直到这些命令对你来说变得很自然。

故障排除:"权限被拒绝"、"目录非空"、繁忙路径

想象一个单独的文件夹悬在一条狭窄的通道上(这条通道代表故障排查,用故障排查图标刻在上面);文件夹内有一些较小的子文件夹和淡化的 .dotfiles 图标随着下落而逐渐消失。通道上从上到下的刻字是:症状、检查、修复;对面是:非空、查看、查找-删除。

大多数故障都归结为几种常见情况。使用「症状→检查→修复」这个流程,确保在 Linux 中删除目录不会导致部署停滞。

1)"权限被拒绝"错误,针对你拥有的目录
用以下命令检查属性 lsattr -d DIR。如果设置了不可变标志 i 用以下命令移除它 sudo chattr -i DIR,然后重试。这在加固系统和某些容器中很常见。

2)即使使用了也显示"操作不允许" sudo
确认挂载点不是只读的。 mount | grep DIR or findmnt DIR 会显示状态。为该操作重新挂载为读写,或选择另一个路径。

3)执行后仍然显示"目录非空" rmdir
还有文件存在。改用:

find DIR -mindepth 1 -delete

这个命令会包括隐藏文件和嵌套内容。

4)服务自动重建了这个文件夹
一个正在运行的服务正在写入这个路径。先停止或正常重启服务,然后删除。如果环境本身有问题,参考 systemctl 命令未找到 的指南先修复这个问题。例如,我们遇到过 Nginx 在测试环境中写入 /var/log/nginx/ ;停止 nginx.service cleared lsof后,删除成功,日志也正常继续记录。

5)"设备或资源繁忙"
某个进程持有目录下的打开文件句柄。 lsof +D DIR or fuser -vm DIR 显示活跃的连接;清理关闭后再删除。需要快速查看socket再清理日志时, Linux Netstat 命令 这一部分很有帮助。

6) 特殊名称:包含空格、换行或以破折号开头
Use or ./ 在以破折号开头的名称前加引号,并为每个字符串加引号。要批量清理这些奇怪的名称,运行 find . -print0 | xargs -0 这样空格就不会破坏命令。

经过这些修复,大多数问题都解决了。如果不需要永久删除,可以改用回收站流程。

使用回收站而不是直接删除: trash-cli and gio trash

超逼真蓝色桌面回收站(哑光聚合物,有细小注射痕迹,开口槽),一个折叠纸文件夹的边角露出开口处。沿口边刻有:TRASH-CLI、TRASH。小侧徽章发出RESTORE的光,暗示可恢复。

不是所有东西都需要永久删除。支持 GLib 的桌面环境和服务器都有回收站流程,可以先检查再恢复。如果你在学习如何删除 Linux 中的目录并想要保险的做法,试试这些:

  • gio trash PATH 将文件和目录移到回收站; gio list trash:// 让你浏览内容。
  • With trash-cli, use trash PATH, trash-list, trash-restore, and trash-empty 适合简单的命令行工作流。

It is slower than rm虽然需要额外检查,但如果你想多一道安全措施,这个折衷是值得的。所以,如果你需要学会在 Linux 中删除目录而不冒险损坏真实数据,先用回收站,再升级到 rm.

Final thoughts

现在你有了完整的 Linux 目录删除工具集,包括 rmdir 用于空路径, rm -I -r 用于安全递归, rm -rf 仅在验证目标后使用,以及 find -mindepth 1 -delete 在需要清空内容但保留父目录时使用。记得给路径加引号,保持 –preserve-root,停留在同一文件系统,如果不可变属性阻挡你就移除它;故障排除检查会处理其他问题。

别忘了,如果你需要一台干净的远程机器来练习,可以启动一个 Cloudzy Linux VPS 服务器;价格实惠,性能稳定,很适合安全测试,而且我们提供 一键 Linux RDP 你还可以获得桌面会话,在完整的图形界面中逐步执行删除操作。

 

FAQ

rm 和 rmdir 有什么区别?

rmdir 仅删除空目录,使用 -p 选项可删除随之变空的父目录。rm 删除文件和目录,加上 -r 选项进行递归删除,加上 -I 或 -i 选项获得删除提示。

如何强制删除一个文件夹及其中的所有内容?

验证路径后运行 rm -rf — DIR。添加 -v 参数可以看到逐行日志。有些管理员会先用 rm -I -r 做一次演练,确认无误后再执行最终删除。

如何删除目录内的文件,而不删除目录本身?

运行 find DIR -mindepth 1 -delete。这条命令可以清空 Linux 目录中的所有文件,同时保留父目录供服务使用。

为什么 rmdir 说「目录不为空」,但我看不到任何文件?

隐藏文件仍然存在。使用 ls -A 可以看到它们,然后用 find -mindepth 1 -delete 模式删除。

How do I fix “Operation not permitted” or “Permission denied”?

用 lsattr -d DIR 检查不可变位,如果存在则用 sudo chattr -i DIR 删除。同时确认挂载点不是只读的。如果某个服务在清理过程中重新创建路径,先修复 unit 问题。上面链接的 systemctl 部分会有帮助。

Share

博客更新

Keep reading.

可与 Cosmos Cloud 运行的最佳自托管应用,封面显示 Cosmos 仪表板周围的应用面板。
Servers & OS

可与 Cosmos Cloud 运行的最佳自托管应用:文件、媒体、密码、自动化等!

Maybe 你已设置 Cosmos Cloud,现在想了解哪些应用能很好地配合使用,或者你甚至还没决定选择 Cosmos,只是想看看它如何融入你的工作流

Nick SilverNick Silver 16 min read
Portainer 对比 Cosmos Cloud 管理 Docker 应用,封面显示混合部署图以及 neon 操作对比访问块。
Servers & OS

Portainer 对比 Cosmos Cloud:Docker 应用管理的最佳选择

如果你已了解 Docker,只是想找到更清晰的方式运行不断增长的应用栈,这是 Portainer 对比 Cosmos Cloud 的简短答案。Portainer 是更强劲的选择,用于直接

Nick SilverNick Silver 14 min read
Cosmos Cloud 对比 CasaOS 对比 Umbrel 功能图,显示一个抽象云网络世界内的三条自托管路径。
Servers & OS

Cosmos Cloud 对比 CasaOS 对比 Umbrel:哪个自托管平台适合你?

简短答案是 CasaOS 仍是最容易入门的选择,Umbrel 拥有最简洁的精选风格,Cosmos Cloud 在你需要更严格控制域名时更有意义

Nick SilverNick Silver 11 min read

Ready to deploy? From $2.48/mo.

独立云服务,始于2008年。AMD EPYC、NVMe,40 Gbps。14天退款保障。