欢迎各位兄弟 发布技术文章
这里的技术是共享的
可以看看 /node-admin/12676
find / -type f -size +1G -print0 | xargs -0 du -h 详解
find / -type f -size +1G -print0 | xargs -0 du -h
这是一个用于查找所有大于1GB的普通文件并计算它们实际占用空间大小的组合命令。
find / -type f -size +1G -print0
find
: 文件搜索命令
/
: 从根目录开始搜索
-type f
: 只搜索普通文件(排除目录等)
-size +1G
: 只找大小超过1GB的文件
-print0
: 用空字符(\0
)分隔每个找到的文件名,而不是默认的换行符
| xargs -0 du -h
|
: 管道,将前一个命令的输出作为下一个命令的输入
xargs
: 将输入数据转换为命令行参数的工具
-0
: 告诉xargs输入是用空字符分隔的(与find的-print0配对)
du -h
: 计算文件/目录的磁盘使用情况,-h表示"human-readable"(易读格式)
-print0
与-0
配对使用:
处理包含空格/特殊字符的文件名时更安全
比默认用换行符分隔更可靠
使用du -h
的目的:
find
的-size
参数是名义大小(文件长度的精确值)
du
显示的是实际占用的磁盘空间(可能因稀疏文件、压缩文件系统等而不同)
-h
使输出更易读(KB,MB,GB等)
找出系统中哪些大文件实际占用了最多的磁盘空间
清理磁盘空间前的准备分析工作
监控系统中的大文件使用情况
按大小排序:
bashfind / -type f -size +1G -print0 | xargs -0 du -h | sort -h
只查看前10个最大的:
bashfind / -type f -size +1G -print0 | xargs -0 du -h | sort -hr | head -n 10
排除特定路径(如/proc):
bashfind / -path '/proc' -prune -o -type f -size +1G -print0 | xargs -0 du -h
注意:搜索整个文件系统可能需要root权限,建议使用sudo或指定特定目录以提高效率。