在 Linux 系统中,准确查看和管理文件夹大小是日常运维和使用的必备技能。很多人刚接触 Linux 时,会被各种命令和输出搞糊涂,其实只要掌握了核心的几个命令和查看逻辑,就能轻松搞清楚每个目录占用了多少空间,从而更好地规划磁盘使用。
查看 Linux 文件夹大小的命令是什么
查看文件夹大小最核心的命令是 du。du 是 Disk Usage 的缩写,它的基本用法是 du [选项] [目录名]。如果不加任何选项,它会列出指定目录下所有子目录的磁盘占用量,并显示为多少 KBlinux文件夹大小,而且会递归显示所有子目录的详细信息,输出结果会非常长。所以通常我们都会配合一些参数来使用,最常用的是 -h 参数linux文件系统,它能让结果以人类易读的方式显示,比如以 K、M、G 为单位。例如,直接在终端输入 du -h,就会看到当前目录下每个子目录的大小。

除了 du,另一个常用命令是 ls。很多人会直接用 ls -l 查看文件大小,但对于文件夹,ls -l 显示的只是文件夹本身的信息(通常是 4K),而不是文件夹里所有内容的总大小。所以如果你想知道一个文件夹下所有文件的总大小,必须用 du 命令。对于只想粗略了解根目录下各主要文件夹的占用情况,可以使用 lsblk 或 df -h 先查看磁盘分区的大小,再结合 du 深入具体目录排查。
怎么用 du 命令查看文件夹大小
使用 du 命令查看文件夹大小有几个非常实用的技巧。最基本的用法是 du -sh 文件夹名,这里的 -s 参数代表 summarize,也就是只显示该文件夹的总计大小,而不列出其内部的子文件夹,这对于快速了解一个目录的整体占用非常方便。例如,想查看 /var 目录的总大小,就执行 du -sh /var,终端会返回类似 2.5G /var 的结果。

如果你需要查看当前目录下所有一级子目录的大小,并希望它们按大小排序,以便快速找出占用空间最大的文件夹,可以使用组合命令 du -sh <strong> | sort -rh。这里的 du -sh </strong> 会显示当前目录下每个文件和文件夹的大小,然后通过管道符 | 传递给 sort -rh 命令,-r 表示降序排列,-h 表示按照人类可读的数值大小进行排序。这样最大的文件夹就会出现在最上面,排查磁盘空间问题非常高效。
如何查看 Linux 根目录下各文件夹大小
服务器用久了,根目录空间告急是最常见的问题之一。这时候,我们需要快速定位是哪个目录吃掉了大量空间。最直接的方法就是使用 du 命令查看根目录下每个一级子目录的大小。由于根目录下通常挂载了不同的分区,我们可以先执行 sudo du -sh /<strong> 2>/dev/null,这条命令会计算根目录下每个直接子目录的总大小。加上 sudo 是因为很多系统目录需要管理员权限才能访问,2>/dev/null 则是把权限不足的报错信息丢弃掉,让输出结果更清晰。

执行上述命令后,你会看到类似这样的输出:4.0K /bin、1.2G /home、5.6G /usr、4.0G /var 等等。这样就能一目了然地看到,可能是 /usr 或 /var 或 /home 目录占用了绝大部分空间。接下来,你就可以针对性地进入这些大目录,比如进入 /var 后,再次执行 sudo du -sh </strong> | sort -rh,一层一层往下深挖,直到找到那些占用空间的大文件或日志文件夹。
如何查看当前目录下所有文件的大小
在日常工作中,我们经常需要搞清楚当前目录下的文件分布情况。除了前面提到的 du -sh *,还有一个功能更丰富的命令 ls 可以帮我们查看文件大小。如果你只关心文件的体积,ls -lh 是最好的选择,它会列出当前目录下所有非隐藏文件的详细信息,包括文件大小(以人类可读格式显示)、权限、所有者等。对于隐藏文件,可以用 ls -lha,-a 参数会显示所有文件。
如果你发现当前目录下文件太多,只想找出那些超过一定大小的“大家伙”,可以结合 find 命令。例如,想找到当前目录下所有大于 100M 的文件,可以执行 find . -type f -size +100M -exec ls -lh {} ;。这条命令会递归地找出所有超过 100M 的普通文件,并用 ls -lh 显示出它们的详细大小,这样就能针对性地进行清理或迁移。

为什么 du 和 ls 显示的文件夹大小不一样
这是一个非常经典的困惑。当你对同一个文件夹执行 du -sh 和 ls -ld 时,会得到两个完全不同的数值。这背后的原因在于它们统计的对象不同。ls -ld 查看的是目录本身作为一个特殊文件所占用的磁盘空间大小。在 Linux 中,目录也是一种文件,它里面存放着该目录下文件列表等信息,这个“目录文件”本身通常只占用一个数据块的大小,比如 4KB。
而 du -sh 计算的是该目录下 所有内容 的总大小,包括它下面所有的子目录和文件。它是通过递归地统计每个文件实际占用的磁盘块数量来累加得出的。所以,ls 看到的是目录文件本身的元数据大小,而 du 看到的是目录所包含的全部数据的总和。两者目的不同,显示的数值自然也不同,理解这一点后,就不会再对此感到困惑了。
怎么用图形化工具查看 Linux 文件夹大小

虽然命令行高效强大,但有时图形化工具能带来更直观的体验,尤其对于想要快速获得空间占用概览的新手。对于带有桌面环境的 Linux 系统(如 Ubuntu Desktop、Deepin 等),系统自带的文件管理器通常就有查看文件夹属性的功能。右键点击文件夹,选择“属性”,在弹出的窗口中就会有一个“大小”标签,显示该文件夹的总大小linux文件夹大小,这和命令行里的 du -sh 结果是一致的。
还有一些专门的磁盘占用分析工具,比如 Baobab(也称为磁盘使用分析器)。打开它后,你可以选择扫描主目录或根目录,它会以饼状图或树状图的形式,非常直观地展示每个文件夹和文件的占比大小。鼠标悬停在不同色块上linux课程,就能看到对应的路径和大小,非常适合快速定位是哪个目录、哪个文件占用了最多的空间,比纯命令行排查要直观得多。
你在日常使用 Linux 时,是否也遇到过因为某个文件夹体积过大导致磁盘写满的情况?你通常是用什么方法找到并清理这些“大文件”的?欢迎在评论区分享你的排查经验,如果觉得本文有帮助,请点赞并分享给更多需要的朋友。
