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 递归强制删除属于高危操作,原生删除不进回收站,误删会造成数据丢失,生产环境执行前务必核对路径并做好备份,操作风险由使用者自行承担。


