要找出最大文件,最稳妥的办法还是把du和find配合起来用:先用du -ah | sort -hr做一轮定位,快速把体积大的目标揪出来;再用find -type f -size +阈值做精确筛选,直接锁定超出范围的文件,这两者刚好互补。相比之下,ls -lS只适用于当前目录,而且看不出真实的磁盘占用情况,关键的大文件很容易就漏掉。

CentOS 7如何查看当前系统最大的文件大小

直接查最大的文件,du + find 是最可靠的方式;ls -lS 只能看当前目录,且不递归、不处理硬链接、不反映真实磁盘占用,容易漏掉真正吃空间的文件。

用 find 找出整个系统中最大的文件(慎用)

全盘扫描开销大、耗时长,且可能因权限不足中断。建议限定路径,比如只查 /var/home/tmp

注意:-printf '%s %pn' 输出的是字节数,sort -n 按数值排,-r 倒序;awk 提取路径再用 ls -lh 补充可读格式。

用 du 配合 sort 查当前目录下最大文件(推荐日常用)

du 天然支持统计文件(不只是目录),但默认不显示单个文件——得加 -a

关键点:-hsort -h 必须配套,否则 1K234M2G 会被当字符串排序,结果错乱。

为什么不用 ls -lS?

ls -lS 乍一看很直接,实际上它只负责三件事:把当前目录里的条目列出来、按照 ls 输出中的 size 字段进行排序、而且既不递归,也不会统计硬链接的真实占用;另外,这里的 size 指的是逻辑大小,不是磁盘块实际占用。也正因为如此,常见的误区往往就出在这里:

真正吃空间的大文件常藏在哪?

别一上来就扫全盘。先用 df -h 看哪个挂载点快满了,再针对性查:

最大文件往往不在显眼路径,而是在服务默认数据目录深处,或者被重命名隐藏(如 .old.bak~ 结尾)——find-name-regex 配合更有效。

本文转载于:https://www.php.cn/faq/3004125.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。