logo

在Linux中如何查看文件磁盘占用情况?

du命令

du(disk usage)命令用于估算文件和目录的磁盘使用情况

基本用法

du [选项] [文件或目录]

常用选项

  • -h:以人类可读的格式显示(例如,K、M、G)
  • -s:显示总计(不显示子目录的详细信息)。
  • -a:包括所有文件和目录。
  • -b:以字节为单位列出磁盘空间使用情况(系统默认以k字节为单位)
  • -k:以1024字节为单位列出磁盘空间使用情况
  • -c:显示总计。
  • -l:计算所有的文件大小,对硬链接文件,则计算多次
  • -x:跳过在不同文件系统上的目录不予统计
  • --max-depth=N:限制显示的目录层级深度。

示例

  • 查看当前目录下每个文件和子目录的磁盘使用情况:
du -h
  • 查看当前目录大小
du -sh
  • 查看指定目录的总磁盘使用情况:
du -sh /path/to/directory
  • 查看指定目录及其子目录的磁盘使用情况,限制深度为1:
du -h --max-depth=1 /path/to/directory
  • 查找大于100MB的文件并显示其磁盘使用情况:
find /path/to/directory -type f -size +100M -execdu -h {} +
  • 查找Linux系统中的占用磁盘空间最大的前10个文件或文件夹
du -a /var | sort -n -r | head -n 10

使用 du 命令查看目录大小时,可能需要一些时间,特别是对于大型目录

df命令

df(disk free)用于查看文件系统的磁盘使用情况

基本用法

df [选项] [文件或目录]

常用选项

  • -h:以人类可读的格式显示(例如,K、M、G)。
  • -T:显示文件系统类型。
  • -i:显示inode使用情况。

显示的内容参数含义

  • Filesystem:文件系统
  • Size:分区大小
  • 1k-blocks:单位是1KB(使用df查看)
  • Used:已用容量
  • Avail:还可用的容量
  • Use%: 已用百分比
  • Mounted on: 挂载点

示例

  • 查看所有挂载的文件系统的磁盘使用情况:
df -h
  • 查看特定目录所在的文件系统的磁盘使用情况:
df -h /path/to/directory

ncdu 命令

ncdu(NCurses Disk Usage)是一个基于文本的用户界面工具,用于查看和分析磁盘空间使用情况。它提供了一个交互式的界面,可以在其中浏览目录并查看每个文件和子目录的大小

ncdu /directory

使用 lsblk 命令

lsblk 命令用于列出块设备(如硬盘、分区等)的信息

lsblk

该命令将列出所有块设备的信息,包括设备名称、挂载点、大小等。

ls命令

ls命令也可以显示文件的大小,但不如du详细。

  • 以人类可读的格式显示文件大小:
ls -lh
  • 显示目录的总大小:
ls -lhS

iostat 命令

iostat(I/O Statistics)命令用于监视系统输入/输出设备负载。它报告CPU统计信息和所有块设备的I/O统计数据。

基本用法

iostat [选项]

示例

  • 查看所有块设备的I/O统计信息
iostat

额外补充一个,如果通过以上方法没有找到问题所在,那么可以使用 lsof | grep deleted 命令,来查看删除的文件是否仍然被进程占用而没有进行实际删除 这种情况


感谢阅读,原创不易,如果有所收获的话,别忘了关注我!