当前位置:首页 > Linux > 正文

linux如何看文件夹大小

Linux 中,查看文件夹大小可使用以下命令: du -sh 文件夹路径-s 表示汇总, -h 以人类可读格式显示大小

Linux系统中,查看文件夹大小是一项常见且重要的操作,有助于用户了解磁盘使用情况并优化存储空间,以下是几种常用的方法及其详细说明:

使用du命令

du(disk usage)命令是查看文件夹大小的核心工具,支持多种参数组合以满足不同需求:

命令 作用 示例
du -sh [目录] 显示指定目录的总大小,-s表示汇总,-h以人类可读格式(KB/MB/GB)显示。 du -sh /var
du -h --max-depth=1 [目录] 显示当前目录下一级子目录的大小,不递归深层目录。 du -h --max-depth=1 /home/user
du -ah [目录] 递归显示所有文件和目录的大小,-a表示包含隐藏文件。 du -ah /etc
du -sh | sort -n 统计当前目录下所有子目录的大小并排序。 du -sh / | sort -n

注意:若未指定目录,默认为当前路径()。du -sh .可查看当前目录总大小。


使用ls命令

ls命令主要用于列出文件信息,部分参数可间接反映大小:

命令 作用 示例
ls -lh [文件/目录] 以长格式显示文件大小,-h自动单位转换(KB/MB等)。 ls -lh /etc/passwd
ls -lS [目录] 按文件大小排序,-S表示从大到小排列。 ls -lSh /var/log

局限性ls仅显示单个文件或目录的尺寸,无法直接统计目录总大小(需结合du)。

linux如何看文件夹大小  第1张


使用stat命令

stat命令提供文件的详细属性,包括精确大小:

命令 作用 示例
stat [文件] 显示文件大小、权限、修改时间等,默认单位为字节。 stat /etc/hosts

输出示例

  File: /etc/hosts
  Size: 123       # 文件大小(字节)
  Blocks: 8       # 占用块数
  IO Block: 4096   # 块大小

使用find命令结合筛选

find可通过条件搜索文件,并结合其他命令统计大小:

命令 作用 示例
find [路径] -type f -size +1G 查找大于1GB的文件,-type f限定普通文件。 find /home -type f -size +1G
find [路径] -type f -exec du -h {} + 递归显示所有文件大小,并通过du格式化输出。 find /var/log -type f -exec du -h {} +

扩展:结合sort排序结果:

find / -type f -size +100M -print0 | xargs -0 du -h | sort -hr

此命令会列出全系统大于100MB的文件,并按大小降序排列。


交互式工具ncdu

ncdu是一个基于文本界面的交互式磁盘分析工具,适合直观浏览:

  1. 安装
    • Debian/Ubuntu:sudo apt install ncdu
    • CentOS/RHEL:sudo yum install ncdu
  2. 运行:直接输入ncdu,即可通过键盘导航目录,实时显示文件/文件夹大小及占比。

优势:支持按需展开/折叠目录、排序、删除文件等操作,适合清理磁盘时使用。


其他相关命令

命令 作用
df -h 查看文件系统的磁盘使用情况(总空间、已用、可用)。
free -h 查看内存使用情况,辅助判断系统资源是否被占满。

FAQs

Q1:如何只查看当前目录下子目录的大小,不包括文件?
A1:使用du -h --max-depth=1 [目录]/

du -h --max-depth=1 /home/user/

此命令会跳过文件,仅统计子目录的总大小。

Q2:如何查找系统中大于1GB的文件夹?
A2:结合dufind命令:

find / -type d -exec du -sh {} + | grep '^[0-9]+G'

此命令会递归搜索全系统,筛选出总大小含“G”单位的目录

0