核心命令详解
du
命令(磁盘使用分析)
适用场景:精准计算目录/文件大小,适合深度扫描。
基础命令:
du -ah /path/to/directory | sort -rh | head -n 20
- 参数解析:
-a
:显示所有文件(包括子目录中的文件)-h
:人类可读格式(KB/MB/GB)--max-depth=1
:限制扫描深度(例:仅当前目录)
- 优化示例(仅显示前 10 个大文件):
du -ah /home 2>/dev/null | sort -rh | head -n 10
2>/dev/null
忽略权限错误
find
命令(条件过滤)
适用场景:按大小、时间、类型精准检索。
查找大于 100MB 的文件:
find / -type f -size +100M 2>/dev/null -exec ls -lh {} \;
- 关键参数:
-size +100M
:>100MB(支持k
/M
/G
)-exec ls -lh {} \;
:结果格式化输出
- 进阶用法(删除 30 天前的日志):
find /var/log -name "*.log" -size +50M -mtime +30 -delete
ls
命令(快速目录分析)
适用场景:快速查看目录内大文件。
按大小降序排列:
ls -lhS /path/to/directory | head -n 10
- 参数说明:
-l
:详细列表-h
:可读格式-S
:按文件大小降序
ncdu
工具(交互式可视化)
适用场景:直观导航文件树,适合复杂目录。
安装与使用:
sudo apt install ncdu # Debian/Ubuntu ncdu /path/to/scan
- 操作指南:
- 方向键浏览,
Enter
进入目录 d
删除文件,g
切换显示单位
- 方向键浏览,
场景化解决方案
场景 | 推荐命令 | 优势 |
---|---|---|
快速定位根目录大文件 | find / -size +1G |
精准过滤,支持通配符 |
分析用户家目录 | du -sh ~/* \| sort -rh |
避免系统文件干扰 |
可视化分析(无 GUI 环境) | ncdu |
交互式操作,避免误删 |
清理旧日志 | find + -mtime |
结合时间与大小条件 |
避坑指南与技巧
-
权限处理:
- 在
find
/du
命令末尾添加2>/dev/null
忽略 “Permission denied” 错误。 - 使用
sudo
执行系统级扫描(谨慎操作)。
- 在
-
软链接陷阱:
du -L
跟踪符号链接实际大小find -P
默认不跟踪链接(避免重复统计)
-
高效组合命令:
# 统计 /var 下前 5 大目录 du -h /var --max-depth=1 2>/dev/null | sort -rh | head -n 5
-
安全删除建议:
- 先通过
ls
或ncdu
确认文件内容 - 使用
shred
安全擦除敏感文件:shred -uvz large_file.iso # 覆盖后删除
- 先通过
- 简单排查:优先使用
ls -lhS
或du -sh *
- 深度扫描:选择
find
或du
结合sort
/head
- 交互需求:
ncdu
提供可视化操作界面
定期清理大文件(如日志、缓存)可结合 cron
定时任务自动化,操作前务必验证文件用途,避免误删系统关键数据。
引用说明:
- GNU Coreutils 手册:https://www.gnu.org/software/coreutils/
find
命令官方文档:https://man7.org/linux/man-pages/man1/find.1.htmlncdu
开源项目:https://dev.yorhel.nl/ncdu 基于 Linux 5.4+ 内核及 GNU bash 5.0 测试验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8276.html