linux shell

关注公众号 jb51net

关闭
首页 > 脚本专栏 > linux shell > Linux目录大小查看

Linux目录大小查看的常用命令详解

作者:Kwan的解忧杂货铺@新空间

在 Linux 系统管理和日常维护中,了解文件和目录占用磁盘空间的情况是一项基本而重要的任务,du(Disk Usage)命令是完成这一任务的强大工具,而 du -h 则是其中最常用的命令形式之一,因此本文给大家详细介绍了Linux目录大小查看命令,需要的朋友可以参考下

一、du 命令基础

du(Disk Usage)命令是 Linux/Unix 系统中用于估算文件和目录磁盘使用情况的实用程序。它通过递归遍历目录结构,计算每个文件和子目录占用的磁盘空间,并以块为单位(默认情况下)显示结果。

基本语法

du [选项] [文件或目录]

如果不指定文件或目录,du 会默认统计当前目录及其所有子目录的磁盘使用情况。

为什么需要 -h 选项?

原始的 du 命令输出以磁盘块为单位(通常 1 块=512 字节或 1KB),这种表示方式对人类阅读不够友好。例如:

du data

可能输出:

123456  data/subdir1
789012  data/subdir2
912468  data

这样的数字难以直观理解。-h(human-readable)选项的出现解决了这个问题,它会自动选择最合适的单位(KB、MB、GB 或 TB)来显示大小:

du -h data

输出变为:

4.0K    data/subdir1
8.2M    data/subdir2
1.2G    data

二、du -h 命令详解

输出解读

du -h 的典型输出包含多行信息:

例如:

4.0K    data/subdir1
8.2M    data/subdir2
1.2G    data

这里:

常用选项组合

-s(汇总):仅显示总大小,不显示子目录详情

du -sh data

输出:

1.2G    data

-c(总计):在最后添加一个总计行

du -hc data

输出:

4.0K    data/subdir1
8.2M    data/subdir2
1.2G    data
1.2G    总用量

--max-depth=N:控制显示的目录深度

du -h --max-depth=1 data

只显示 data 下第一级子目录的大小

三、du 与其他命令的对比

du vs df

du 更适合查找具体目录或文件占用的空间,而 df 更适合查看整个磁盘或分区的使用情况。

du vs ls -l

例如,一个 1 字节的文件:

四、实际应用场景

1. 查找大目录

du -h / | sort -rh | head -n 20

这条命令组合:

2. 监控用户磁盘使用

du -sh /home/*

快速查看所有用户主目录的磁盘使用情况。

3. 排除特定目录

du -h --exclude='*.log' /var

统计 /var 目录大小,但排除所有 .log 文件。

4. 比较目录变化

du -sh data
# 进行一些操作后
du -sh data

通过两次执行比较目录大小的变化。

五、高级技巧与注意事项

1. 处理符号链接

默认情况下,du 会统计符号链接指向的文件大小。使用 -L 选项可以跟随符号链接:

du -Lh /path

2. 显示修改时间

结合 --time 选项可以显示最后修改时间:

du -h --time data

3. 性能优化

对于大型文件系统,du 可能需要较长时间。可以:

4. 跨文件系统统计

默认 du 会统计挂载点下的其他文件系统。使用 -x 可以限制在当前文件系统:

du -xh /

六、常见问题解答

Q1:为什么 du 和 df 显示的总空间不一致?

A1:可能原因包括:

Q2:如何统计目录中的文件数量而非大小?

A2:使用 find 和 wc

find data -type f | wc -l

Q3:du 显示的 size 为什么比实际文件总和要大?

A3:du 统计的是磁盘使用量,包括:

到此这篇关于Linux目录大小查看的常用命令详解的文章就介绍到这了,更多相关Linux目录大小查看内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文