You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

du命令显示日志目录大小异常的原因求助

du命令显示日志目录大小异常的原因求助

嗨,我来帮你分析下这个问题~你运行了du -h命令查看当前目录的空间占用,得到的结果如下:

112K ./YaST2/storage-inst
172K ./YaST2/storage-03
56K ./YaST2/storage-02
48K ./YaST2/storage-01
60K ./YaST2/storage
64K ./YaST2/control-03
64K ./YaST2/control-02
64K ./YaST2/control-01
64K ./YaST2/control
11M ./YaST2
2.8M ./zypp
0 ./krb5
0 ./samba
75M ./journal/cdb643da53b6499fa275a4527e973a40
75M ./journal
0 ./private
0 ./mysql
0 ./tuned
100K ./cups
34M ./audit
0 ./chrony
4.0K ./cepces
1008K ./libvirt/qemu
1008K ./libvirt
0 ./swtpm/libvirt/qemu
0 ./swtpm/libvirt
0 ./swtpm
4.0K ./ipp-usb
0 ./speech-dispatcher
17M ./updateTestcase-2023-08-18-14-05-42
17M ./updateTestcase-2023-08-19-14-37-57
30G .

但你发现把所有子目录的大小加起来远不到30G,疑惑为什么当前目录会显示占用30G空间。这种情况在Linux里挺常见的,主要有这几个可能的原因,你可以挨个排查:

  • 当前目录下藏着大的隐藏文件:du -h会遍历子目录,但如果当前目录根下有直接存放的隐藏文件(文件名以.开头,比如.large-backup这种),它们不会出现在上面的子目录列表里,却会被算进总大小里。你可以敲ls -lah .看看当前目录下的所有文件(包括隐藏的),说不定能找到占用空间的元凶。

  • 有文件被删了但还被进程占用着:Linux里有个容易踩的坑——如果一个文件被rm删除了,但还有进程在打开它,那这个文件的磁盘空间不会被释放,du会把它算进目录占用,但ls根本看不到它。你可以用lsof | grep deleted找出这类“幽灵文件”,重启对应的进程就能把空间释放出来。

  • 挂载点干扰了统计结果:如果当前目录下有其他磁盘的挂载点(比如你把某个外接存储盘挂载到了这个目录的某个子文件夹里),du默认会把挂载点里的内容也算进来,但上面的列表里可能没完整体现?试试du -h -x,这个参数会跳过其他文件系统的挂载内容,只统计当前文件系统的空间,看看结果会不会变化。

  • 换个更清晰的统计方式定位:你可以执行du -h --max-depth=1,这个命令会只显示当前目录下直接的子目录和文件的大小,能更直观地看到哪个部分占了大量空间,比现在的列表更容易定位问题。

备注:内容来源于stack exchange,提问作者nintyfan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:23:05