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

如何从Linux命令行删除XYZ目录下占用空间最大的100个文件?

删除XYZ目录下占用空间最大的100个文件

核心命令(基础版)

直接运行以下命令即可批量删除目标文件:

du -a XYZ/ | sort -nr | head -n 100 | awk '{print $2}' | xargs rm -f

命令拆解

  • du -a XYZ/:遍历XYZ目录及其子目录,输出每个文件的磁盘占用量与完整路径,格式为「大小 路径」
  • sort -nr:按数值对结果逆序排序,确保最大的文件排在最前面
  • head -n 100:截取排序后的前100行,对应最大的100个文件
  • awk '{print $2}':提取每行的第二列(即文件路径),过滤掉大小数值
  • xargs rm -f:将提取到的路径批量传给rm命令,-f参数强制删除,避免交互确认

处理含特殊字符的文件名

如果目标文件包含空格、换行或引号等特殊字符,基础版命令可能失效,改用以下安全写法:

du -a0 XYZ/ | sort -z -nr | head -z -n 100 | awk -v RS='\0' '{print $2}' | xargs -0 rm -f

这里的-0/-z参数让所有命令用null字符分隔文件名,彻底避免特殊字符导致的错误。

安全预览建议

删除前强烈建议先预览要删除的文件,确认无误后再执行删除操作:

du -a XYZ/ | sort -nr | head -n 100 | awk '{print $2}'

更快的替代方案(用find)

如果XYZ目录下文件极多,du可能运行较慢,可改用find直接获取文件大小:

find XYZ/ -type f -printf '%s %p\n' | sort -nr | head -n 100 | awk '{print $2}' | xargs rm -f

find -type f仅查找普通文件(排除目录),%s输出文件字节数,%p输出完整路径,整体执行效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:35:27