du -sh 文件夹路径
命令Linux 系统中,查询文件夹大小是一个常见的操作,可以帮助我们了解磁盘使用情况、管理存储空间等,以下是几种在 Linux 中查询文件夹大小的方法:
使用 du
命令
du
(disk usage)命令是 Linux 中用于查看文件和文件夹磁盘使用情况的主要工具,它的基本语法如下:
du [选项] [文件或目录]
常用选项:
-h
:以人类可读的格式显示大小(如 K、M、G)。-s
:仅显示指定文件或目录的总大小。--max-depth=N
:限制显示的目录层级深度。
示例 1:查看当前目录及其子目录的大小
du -h .
这将以人类可读的格式显示当前目录及所有子目录和文件的大小。
示例 2:仅显示某个目录的总大小
du -sh /path/to/directory
-s
选项表示只显示总大小,-h
使输出更易读。
示例 3:限制显示的目录层级
du -h --max-depth=1 /path/to/directory
这只会显示指定目录及其直接子目录的大小,不会递归到更深层级。
结合 sort
和 du
查找最大的子目录
有时,我们可能需要找出哪个子目录占用的空间最大,这时,可以将 du
的输出通过管道传递给 sort
命令进行排序。
示例:查找 /var
目录下占用空间最大的前 5 个子目录
du -h --max-depth=1 /var | sort -hr | head -n 5
du -h --max-depth=1 /var
:显示/var
目录及其直接子目录的大小。sort -hr
:按人类可读的大小进行降序排序。head -n 5
:取排序后的前 5 行。
使用 ncdu
工具
ncdu
是一个基于文本界面的工具,可以直观地查看磁盘使用情况,并支持交互式操作,如导航目录、删除文件等,它需要先安装,大多数 Linux 发行版的包管理器中都可以找到。
安装 ncdu
(以 Debian/Ubuntu 为例)
sudo apt-get update sudo apt-get install ncdu
使用 ncdu
查看目录大小
ncdu /path/to/directory
运行后,会进入一个类似 du
的界面,但提供了更多的交互功能,如按下箭头键可以展开目录,查看详细内容。
使用图形化工具(如 Disk Usage Analyzer
)
对于习惯使用图形界面的用户,Linux 提供了一些图形化的磁盘使用分析工具,在 GNOME 桌面环境中,可以使用 Disk Usage Analyzer
。
启动 Disk Usage Analyzer
在终端中输入:
gnome-disk-utility
或者在应用菜单中找到并启动该工具,启动后,选择要分析的目录,即可看到直观的磁盘使用图表。
脚本自动化查询
如果需要定期查询某个目录的大小,可以编写一个简单的脚本,并结合 cron
定时任务来实现自动化。
示例脚本:查询 /home
目录大小并记录到日志文件
#!/bin/bash # 定义要查询的目录 DIR="/home" # 定义日志文件路径 LOG_FILE="/var/log/home_disk_usage.log" # 获取当前时间 CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S") # 获取目录大小 SIZE=$(du -sh "$DIR" | awk '{print $1}') # 记录到日志文件 echo "$CURRENT_TIME $DIR size: $SIZE" >> "$LOG_FILE"
设置 cron
定时任务
编辑 crontab
:
crontab -e
添加以下行,例如每天凌晨 1 点执行脚本:
0 1 /path/to/script.sh
保存并退出,cron
将按照设定的时间自动执行脚本,记录目录大小到日志文件中。
比较不同方法的优缺点
方法 | 优点 | 缺点 |
---|---|---|
du 命令 |
简单易用,灵活性高 | 对于非常大的目录,输出可能过于详细 |
ncdu 工具 |
交互式界面,支持导航和删除操作 | 需要额外安装,部分发行版默认未包含 |
图形化工具 | 直观易懂,适合新手 | 需要图形界面支持,无法在无头服务器上使用 |
脚本自动化 | 可定时执行,适合监控和记录 | 需要编写和维护脚本,复杂度较高 |
在 Linux 中查询文件夹大小有多种方法,选择合适的工具取决于具体需求和使用场景,对于日常快速查看,du
命令已经足够;如果需要更直观的交互式操作,ncdu
是一个不错的选择;而对于喜欢图形界面的用户,系统自带的磁盘使用分析工具也非常方便,通过编写脚本和利用 cron
定时任务,还可以实现自动化的目录大小监控,帮助更好地管理磁盘空间。
FAQs
问题 1:如何在 Linux 中仅查看某个目录的总大小,而不显示其子目录的详细信息?
解答: 使用 du
命令的 -s
选项可以仅显示指定目录的总大小,要查看 /home
目录的总大小,可以运行:
du -sh /home
这将输出类似 10G /home
的结果,仅显示 /home
目录的总大小,而不包括其子目录的详细信息。
问题 2:du
和 df
命令有什么区别?
解答: du
(disk usage)和 df
(disk free)都是用于查看磁盘使用情况的命令,但它们的功能和用途有所不同:
-
du
:用于查看文件或目录所占用的磁盘空间,它可以递归地显示指定目录及其子目录和文件的大小,适用于检查特定目录或文件的存储使用情况。示例:
du -sh /var/log
这将显示
/var/log
目录及其内容的总计大小。 -
df
:用于查看文件系统的磁盘空间使用情况,包括每个分区的总容量、已用空间、可用空间以及挂载点等信息,它适用于检查整个系统的磁盘使用概况,了解各个分区的剩余空间。示例:
df -h
这将以人类可读的格式显示所有挂载的文件系统的磁盘使用情况。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/66500.html