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

群晖NAS终端中如何正确列出小于指定大小的目录?

问题原因

find命令的-size参数作用在目录上时,统计的是目录自身的元数据大小(也就是存储目录条目、权限等信息占用的磁盘空间),不是目录及其所有子文件、子目录的总大小。哪怕目录里装了几个GB的文件,目录本身的大小可能也只有几KB,所以你用-size -5M会找出几乎所有目录,完全不符合预期。

正确的筛选命令

下面两种方法都能准确找出总大小小于5MB的目录:

方法1:用du直接统计筛选

du -sm /volume1/Music\ Library/ | awk '$1 < 5 {print $2}'
  • du -sm:-s只输出每个目录的总大小,-m按MB单位统计;
  • awk '$1 < 5 {print $2}':筛选出第一列(大小数值)小于5的行,输出第二列(目录路径)。

如果要遍历所有层级的子目录,用这个命令:

du -sm /volume1/Music\ Library/*/ 2>/dev/null | awk '$1 < 5 {print $2}'
  • /*/匹配一级子目录,2>/dev/null忽略权限不足等错误信息。

方法2:结合find和du批量处理

适合需要更精确控制遍历范围的场景(比如排除特定名称的目录):

find /volume1/Music\ Library/ -type d ! -name ".*" -exec du -sm {} + | awk '$1 < 5 {print $2}'
  • ! -name ".*":排除隐藏目录;
  • -exec du -sm {} +:批量给find找到的每个目录调用du统计总大小。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:01:10