本文系统介绍Linux查看文件夹磁盘空间的方法:基础命令如du(-h人性化显示、-sh汇总目录)、df查看分区使用情况;高效工具包括ncdu(交互式扫描)、baobab(图形化分析),可快速定位大文件、分析目录结构,帮助用户高效管理磁盘空间,解决存储不足问题。
在Linux系统中,我们常说的“文件夹占用内存”通常是指文件夹占用的磁盘空间(内存是RAM,用于临时存储运行数据;磁盘空间则是硬盘/SSD的存储容量),本文将详细介绍多种查看文件夹磁盘占用情况的方法,从基础命令到第三方工具,助你快速定位大文件和目录。
基础命令:du——查看目录/文件磁盘使用量
du(disk usage)是Linux中最常用的磁盘使用情况分析工具,通过它可以精准查看指定文件夹及其子文件夹的占用空间。
查看单个文件夹的总占用空间
du -sh /path/to/folder
-s(summarize):仅显示总计大小,不显示子文件夹详情;-h(human-readable):以人类可读格式显示(如K、M、G);/path/to/folder:目标文件夹路径(可使用相对路径,如./current_folder)。
示例:查看/home/user/downloads文件夹的总大小

du -sh /home/user/downloads # 输出示例:2.5G /home/user/downloads
查看文件夹下所有子文件夹的大小(按层级展开)
du -h --max-depth=N /path/to/folder
--max-depth=N:控制显示层级(N=1只显示一级子文件夹,N=2显示两级,以此类推)。
示例:查看/var/log下所有子文件夹的大小(最多显示2级)
du -h --max-depth=2 /var/log # 输出示例: # 4.0K /var/log/alternatives # 12M /var/log/apt # 8.0K /var/log/dist-upgrade # ... # 156M /var/log
查看文件夹下所有文件/文件夹的大小(按大小排序)
若想按占用大小从大到小排序,可结合sort命令:
du -h /path/to/folder | sort -hr
sort -h:按人类可读的数字大小排序(从小到大);-r则反转排序(从大到小)。
示例:查看/home/user下所有子文件夹的大小并排序
du -h /home/user | sort -hr # 输出示例: # 5.2G /home/user # 3.1G /home/user/videos # 1.8G /home/user/documents # 256M /home/user/pictures # ...
排除特定文件/文件夹
若需排除某些文件(如日志文件、临时文件),可使用--exclude选项:
du -sh --exclude="*.log" /path/to/folder
示例:查看/data文件夹大小,排除所有.log文件
du -sh --exclude="*.log" /data
文件系统视角:df——查看文件夹所在分区的整体使用情况
df(disk free)用于查看文件系统的磁盘剩余空间,若想确认“文件夹所在分区的总容量和剩余空间”,可用df:
df -h /path/to/folder
-h:人类可读格式;/path/to/folder:目标文件夹路径(若不写,则显示所有挂载点的信息)。
示例:查看/home/user/downloads所在分区的磁盘使用情况
df -h /home/user/downloads # 输出示例: # Filesystem Size Used Avail Use% Mounted on # /dev/sda2 500G 380G 100G 79% /home
说明:/home/user/downloads位于/dev/sda2分区,该分区总容量500G,已用380G,剩余100G,使用率79%。
交互式工具:ncdu——高效分析磁盘占用(推荐)
ncdu(NCurses Disk Usage)是一个基于终端的交互式磁盘分析工具,支持“实时扫描、导航、删除”,适合快速定位大文件/文件夹,比du更直观。
安装ncdu
不同发行版安装命令不同:
- Debian/Ubuntu:
sudo apt install ncdu - CentOS/RHEL:
sudo yum install ncdu - macOS(Homebrew):
brew install ncdu
使用ncdu扫描文件夹
ncdu /path/to/folder
示例:扫描/home/user/downloads
ncdu /home/user/downloads
启动后会显示类似界面:
ncdu 1.15.1 ~ Use the arrow keys to navigate, press ? for help
--- /home/user/downloads [2.5G] ---
1.1G [##########] videos/
800M [##### ] documents/
350M [### ] pictures/
150M [# ] temp/
100M [. ] archives/
- 操作说明:
- 上下箭头:导航文件夹/文件;
- 右箭头:进入子文件夹;
- 左箭头:返回上级文件夹;
d:删除当前文件/文件夹(需确认);n:按名称排序;s:按大小排序;q:退出。
进阶技巧:结合find与du——按文件类型/时间筛选
若需按文件类型(如.mp4、.log)或修改时间筛选文件并计算大小,可结合find和du:
查找特定类型的文件并计算总大小
find /path/to/folder -type f -name "*.mp4" -exec du -ch {} + | grep total$
-type f:仅查找文件(不包含目录);-name "*.mp4":文件名匹配.mp4;-exec du -ch {} +:对每个找到的文件执行du -ch(-c显示总计,-h人类可读);grep total$:过滤出“total”行,即总大小。
示例:查找/home/user/videos下所有.mp4文件的总大小
find /home/user/videos -type f -name "*.mp4" -exec du -ch {} + | grep total$
# 输出示例:1.1G total
查找最近7天修改的文件并计算大小
find /path/to/folder -type f -mtime -7 -exec du -ch {} + | grep total$
-mtime -7:查找

