本文目录导读:

,主要针对Linux/Unix系统和Windows系统。
Linux/Unix系统
按文件大小查找
使用 find 命令
# 查找大于10MB的文件 find /path -type f -size +10M # 查找小于1KB的文件 find /path -type f -size -1k # 查找等于50MB的文件 find /path -type f -size 50M # 查找1MB到10MB之间的文件 find /path -type f -size +1M -size -10M
单位说明
c- 字节k- 千字节(KB)M- 兆字节(MB)G- 吉字节(GB)
按大小排序显示
使用 ls 命令
# 按大小升序排列 ls -lS # 按大小降序排列 ls -lSr # 显示人类可读的大小 ls -lhS # 包括隐藏文件 ls -lahS
使用 du 命令
# 按大小排序目录 du -sh * | sort -h # 按大小排序(降序) du -sh * | sort -rh # 递归查看所有文件 du -ah /path | sort -h
查找大文件
# 查找前10个大文件
find / -type f -exec ls -lh {} \; | sort -k5 -rh | head -10
# 更简洁的方法
find / -type f -printf '%s %p\n' | sort -rn | head -10 | awk '{print $2, $1}'
Windows系统
使用命令提示符
# 显示当前目录所有文件大小 dir /s # 按大小排序 dir /os # 按大小降序 dir /o-s # 只显示大于1MB的文件 forfiles /S /M * /C "cmd /c if @fsize GEQ 1048576 echo @path @fsize"
使用PowerShell
# 查找大于100MB的文件
Get-ChildItem -Path C:\ -Recurse |
Where-Object {$_.Length -gt 100MB} |
Sort-Object Length -Descending
# 按大小排序并显示
Get-ChildItem | Sort-Object Length -Descending |
Select-Object Name, @{Name="Size(MB)";Expression={[math]::Round($_.Length/1MB,2)}}
# 查找大小在1MB到10MB之间的文件
Get-ChildItem -Recurse |
Where-Object {$_.Length -gt 1MB -and $_.Length -lt 10MB}
使用图形界面
-
文件资源管理器
- 打开文件夹
- 点击"查看"选项卡
- 点击"排序" → "大小"
-
第三方工具
- TreeSize
- WinDirStat
- SpaceSniffer
实际应用示例
清理大文件
# Linux:找到并删除大于100MB的日志文件
find /var/log -type f -size +100M -exec rm -f {} \;
# 先查看再删除(安全方式)
find /var/log -type f -size +100M -ls
统计文件大小分布
# 统计各大小范围的文件数量 find /path -type f -size -1k | wc -l find /path -type f -size +1M -size -10M | wc -l find /path -type f -size +100M | wc -l
注意事项
- 性能考虑:对大目录递归搜索可能很慢
- 权限问题:某些目录可能无法访问
- 符号链接:
find默认不跟踪符号链接 - 精确性:文件大小计算方式可能因文件系统不同而有差异
选择哪种方法取决于你的具体需求(临时查找、定时清理、还是监控分析)。
标签: 筛选
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。