首页 > 动态 > 你问我答 >

问 linux 中删除当前目录下所有文件的方法 rm 通配符批量清理

2026-11-08 22:49:42
最佳答案

答

linux 中删除当前目录下所有文件,最常用命令是 rm,核心写法是 rm -f ./,如果需要连同子目录里面内容一起递归清空,使用 rm -rf ./,这个操作属于高危操作,执行之前一定要先用 pwd 确认当前所在目录,一旦目录选错会造成大范围误删,通配符代表匹配当前目录全部对象,包含普通文件、子文件夹、链接文件,很多新手容易混淆,rm ./ 默认不会递归进入子目录内部,子目录本身会保留,但是目录里面的内容不会删除,想要彻底清空当前目录所有内容必须加 r 递归参数,另外如果需要排除个别文件不删除,可以结合 find 命令精准筛选删除,比单纯通配符更加安全,还可以使用 rm -i 交互模式,删除之前逐个确认,适合谨慎操作,linux 中删除当前目录下所有文件还要注意权限,当前用户必须对当前目录拥有写权限,否则会提示权限拒绝,隐藏文件也就是以点开头的文件,比如.bashrc,./ 默认是不会匹配隐藏文件,如果需要连隐藏文件一起删除,需要单独处理,这是非常容易踩坑的细节。

一 基础命令写法

只删除普通文件,不递归子目录

rm -f ./

  • f:强制删除,不再弹出确认提示
  • ./*:当前目录下所有非隐藏文件和文件夹对象

递归清空当前目录全部内容(包含子目录内部文件)

rm -rf ./

⚠️ 高危!r 代表递归遍历所有子目录,删除目录内全部内容

交互确认模式,删除前询问

rm -ri ./

每一个对象删除前提示 y 确认,适合新手练习,防止误删

二 隐藏文件单独处理(重点坑点)

./ 默认不会匹配。开头隐藏文件,如果需要连同隐藏文件全部清空

写法 1:

rm -rf ./ .[!.]

写法 2:使用 find 方式

find . -mindepth 1 -maxdepth 1 -delete

这条 find 命令只删除当前目录第一层对象,不会继续往上一级目录,同时可以匹配隐藏文件

三 find 精准批量删除方案(推荐更可控)

只删除当前目录第一层所有内容,不递归更深层级

find . -mindepth 1 -maxdepth 1 -exec rm -rf {} ;

如果只想删除当前目录下普通文件,保留所有子文件夹

find . -maxdepth 1 -type f -delete

四 命令对比表格

命令是否递归子目录是否删除隐藏文件特点
rm -f ./*否否基础清空非隐藏对象
rm -rf ./*是否递归清空,高危
find . -mindepth 1 -maxdepth 1 -delete否是可匹配隐藏文件,可控
rm -ri ./*是否交互确认,更安全

五 深度补充要点

1 执行前强制习惯:先 pwd 确认路径,最好先执行 ls ./ 预览将要删除的内容,确认无误再执行 rm

2 区分 rm -rf 和 rm -rf ./,两者效果接近,但是 ./ 写法语义更明确,代表当前目录

3 不要写成 rm -rf / ,会删除根分区全部系统文件,属于经典重大事故

4 删除原理:rm 移除 inode 目录项,原生 rm 没有回收站,误删恢复难度高,重要数据提前备份

5 权限要求:删除文件不需要文件本身写权限,但是当前目录必须拥有写权限

【常见问题】

问题 1 linux 中删除当前目录下所有文件,为什么隐藏文件没有删掉

回答 1 linux 中删除当前目录下所有文件,rm ./ 通配符默认不匹配点开头隐藏文件,linux 中删除当前目录下所有文件如果需要清理隐藏文件,可以使用 find . -mindepth 1 -maxdepth 1 -delete 这条命令。

问题 2 linux 中删除当前目录下所有文件,rm -rf ./会不会删除上级目录

回答 1 linux 中删除当前目录下所有文件,rm -rf ./ 只会作用在当前目录,不会向上删除上级目录,但是 linux 中删除当前目录下所有文件执行前依然建议 pwd 确认目录,避免切换错目录造成误删。

问题 3 linux 中删除当前目录下所有文件,有没有带确认的安全写法

回答 1 linux 中删除当前目录下所有文件可以使用 rm -ri ./,linux 中删除当前目录下所有文件每一项都会弹出确认,输入 y 才会删除,适合谨慎操作,也可以先 ls 预览再执行 rm。

【免责申明】

本文 linux 中删除当前目录下所有文件相关内容仅作为技术学习参考,rm 递归强制删除属于高危操作,原生删除不进回收站,误删会造成数据丢失,生产环境执行前务必核对路径并做好备份,操作风险由使用者自行承担。