本文目录导读:

- 方法一:
find+sort(最常用,支持所有Unix/Linux) - 方法二:
du+sort(更适合找大文件/目录) - 方法三:只查特定大小以上的文件(速度更快)
- 方法四:使用
ncdu(交互式图形界面,最直观) - 方法五:使用
fd+sort(更快,适合大目录) - 常见需求示例
- 注意事项
在Linux/macOS系统中,查找并按大小排序大文件,最常用的方法有以下几种(按推荐程度排序):
find + sort(最常用,支持所有Unix/Linux)
# 查找当前目录下所有文件(非目录)并按大小降序排列
find . -type f -exec ls -lhS {} + | head -50
# 或者更精确(按字节排序,避免 -h 可读性导致的排序错误)
find . -type f -exec ls -lS {} + | head -50
-type f:只找文件,排除目录-lhS:l长格式,h人类可读大小,S按大小降序排序- 标准做法是
-lS(不加h),因为-h的“1K”“1M”会被字母序误排
du + sort(更适合找大文件/目录)
# 查找当前目录下所有文件及目录的大小(MB级别以上) du -sh * | sort -rh | head -20 # 查找整个系统的大文件(需root,输出大于100MB的文件) du -ah / 2>/dev/null | sort -rh | head -30
du -ah:a显示文件,h人类可读,2>/dev/null忽略权限报错sort -rh:r降序,h人类可读数值排序(正确识别K/M/G/T)
只查特定大小以上的文件(速度更快)
# 查找大于100MB的所有文件
find / -type f -size +100M -exec ls -lh {} \; | sort -k5 -rh
# 或者直接输出大小并排序(更简洁)
find / -type f -size +100M -exec du -ah {} + | sort -rh
-size +100M:阈值设为100MB,可根据需要改为+1G、+500Msort -k5 -rh:按第5列(大小列)排序
使用 ncdu(交互式图形界面,最直观)
# 先安装(Ubuntu/Debian) sudo apt install ncdu # 扫描当前目录 ncdu . # 或者扫描整个根目录 sudo ncdu /
- 启动后自动显示所有文件和目录的大小(按大小排列)
- 可以用键盘上下键浏览,
d删除,q退出
使用 fd + sort(更快,适合大目录)
# 需要先安装 fd ( https://github.com/sharkdp/fd )
fd -t f -S +10M --exec du -h {} | sort -rh | head -20
-t f:只找文件-S +10M:大于10MB- 比
find快很多,尤其是有大量文件时
常见需求示例
| 需求 | 命令 |
|---|---|
| 查找当前目录最大的10个文件 | find . -type f -exec ls -lS {} + \| head -10 |
| 查找根目录下所有大于1G的文件 | find / -type f -size +1G -exec ls -lh {} + \| sort -k5 -rh |
| 查找/home下最大的目录(含子目录) | du -sh /home/* \| sort -rh \| head -10 |
| 实时监控系统大文件变化 | watch -n 60 'find / -type f -size +100M -exec du -ah {} + \| sort -rh \| head -20' |
注意事项
- 根目录扫描()需要
sudo,否则会有权限拒绝报错 sort -h虽好,但部分旧系统不支持(-h是GNU扩展),可以用sort -n配合ls -lS(用字节排序)代替- *`du -sh `** 只显示当前目录下的一级条目,不深入子目录内的文件(适合看目录层级)
ls -lhS的排序问题:-h生成的是“1.2G”“234M”这样的字符串,按字母序时“1.1G”会排在“100M”前面(因为1 < 1),所以最好用-lS(字节)或sort -h补丁
标签: sort
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播