在 Linux 系统中,准确地掌握目录和文件的大小对于磁盘空间管理至关重要。本文将详细介绍如何使用 du
(disk usage)命令逐层查看目录和文件的大小,并结合 sort
命令对结果进行排序,以便有效地识别和管理占用空间较大的文件和目录。
一、du
命令概述
du
命令用于估算文件和目录所占用的磁盘空间。通过不同的选项,用户可以灵活地查看特定目录或文件的大小信息。
常用选项包括:
-
-h
:以人类可读的格式显示大小(例如,K、M、G)。 -
--max-depth=N
:限制递归深度,仅显示指定层级的目录大小。 -
-a
:显示目录下的所有文件和子目录的大小。 -
-s
:仅显示指定目录的总大小,而不列出子目录。
二、逐层查看目录大小
为了逐层深入地查看目录大小,可以从根目录开始,逐步进入占用空间较大的子目录。以下是具体步骤:
1. 查看根目录下各子目录的大小
首先,查看根目录(/
)下一级子目录的大小,并按大小从大到小排序:
sudo du -h --max-depth=1 / | sort -hr
示例输出:
15G /var
10G /usr
5G /home
...
根据输出结果,选择占用空间最大的目录(例如 /var
)进行下一步分析。
2. 查看选定目录下的子目录大小
进入上一步选择的目录,继续查看其下一级子目录的大小。例如,查看 /var
目录:
sudo du -h --max-depth=1 /var | sort -hr
示例输出:
12G /var/log
2G /var/lib
500M /var/cache
...
继续选择占用空间最大的子目录(例如 /var/log
)进行深入分析。
3. 查找特定目录下的大文件
在确定了占用空间较大的目录后,可以进一步查找该目录下的大文件。例如,查找 /var/log
目录下的前 10 个大文件:
sudo find /var/log -type f -exec du -h {} + | sort -hr | head -n 10
通过上述步骤,您可以逐层深入,准确定位占用磁盘空间较大的目录和文件,便于进一步清理或管理。
三、使用 ncdu
进行交互式分析(可选)
除了使用命令行工具外,您还可以使用 ncdu
(NCurses Disk Usage)进行交互式的磁盘使用分析。ncdu
提供了直观的界面,方便您浏览和管理文件系统中的空间使用情况。
1. 安装 ncdu
在 Debian/Ubuntu 系统上:
sudo apt-get install ncdu
在 CentOS/RHEL 系统上:
sudo yum install ncdu
2. 使用 ncdu
安装完成后,运行以下命令启动 ncdu
:
sudo ncdu /
ncdu
将扫描指定目录(此处为根目录 /
),并以交互式界面显示各子目录和文件的大小。您可以使用箭头键导航,按 Enter
键进入子目录,按 d
键删除选中的文件或目录(请谨慎操作),按 q
键退出。