You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux终端中如何删除MB级大小的文件?

删除MB级大小文件的正确命令

你的原命令du -sk * -h | grep M | rm -rf * 完全错误且极度危险:rm -rf *不会读取管道传来的内容,会直接删除当前目录下所有文件和文件夹,和前面的筛选逻辑毫无关系。

下面是两种安全有效的解决方案:

方法一:基于KB数值精准筛选(推荐)

避开单位解析的麻烦,直接用du输出的KB数值判断1MB-1023MB的文件/目录:

du -sk * | awk '$1 >= 1024 && $1 < 1048576 {print $2}' | xargs rm -rf

如果只想删除普通文件(不删除目录),用下面的命令:

du -sk * | awk '$1 >= 1024 && $1 < 1048576 {print $2}' | xargs -I {} sh -c '[ -f {} ] && rm -f {}'

方法二:基于du的人类可读输出筛选

如果一定要用grep M匹配单位,需用正则确保只匹配大小字段的M,避免误删文件名含M的文件:

du -h * | grep -E '^[0-9.]+\M\s' | awk '{print $2}' | xargs rm -rf

同样,仅删除普通文件的版本:

du -h * | grep -E '^[0-9.]+\M\s' | awk '{print $2}' | xargs -I {} sh -c '[ -f {} ] && rm -f {}'

核心逻辑解释

  • du -sk *:以KB为单位输出当前目录所有子项的大小和名称
  • awk:根据设定的大小范围筛选目标项,提取名称
  • xargs:将筛选出的名称批量传递给rm执行删除操作
  • [ -f {} ]:额外检查目标是否为普通文件,避免误删目录

内容的提问来源于stack exchange,提问作者DAYALAN T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:27:24