如何在Linux和Unix上使用Duf查看磁盘使用情况

查看Linux和Unix中磁盘使用情况的最常用应用程序是 。 杜代表 düsage被广泛用于找出哪些文件和目录占用了最多的磁盘空间。 还存在许多其他命令行和图形工具来完成此任务。 我们已经介绍了其中一些内容,并在过去将其发布在我们的博客中。 今天,我们将再命名一个磁盘使用情况检查器 杜夫

Duf是一个命令行实用程序,用于查找Linux和类似Unix的系统中的磁盘使用情况。 它以漂亮的表格列和用户友好的布局显示磁盘使用情况的详细信息。 您甚至可以在中获取磁盘使用情况输出 JSON格式 格式也是如此。

如果输出超出屏幕的可见部分,它将自动调整终端的宽度。 您可以按总大小,文件系统类型,已用和可用空间,安装点和索引节点对结果进行排序。 也可以从输出中显示,隐藏和排除特定的设备详细信息。

Duf是收缩 dü智者/Free 这是一个用编写的开源应用程序 编程语言,并在MIT许可下发布。 它可以在GNU / Linux,BSD和Mac OS下运行。

在Linux上安装Duf

当前,Duf已打包为基于Arch,基于DEB和基于RPM的Linux操作系统。

Duf可用于 AUR。 如果您使用的是Arch Linux或任何arch变体,则可以使用AUR帮助程序进行安装,例如 好极了

$ yay -S duf

在基于Deb的系统(例如Debian,Ubuntu,Linux Mint)上,从以下位置下载.deb二进制安装文件: 发布页面 并使用系统的软件包管理器进行安装。

$ sudo apt install gdebi
$ sudo gdebi duf_0.3.1_linux_amd64.deb

在基于RPM的系统(例如RHEL,CentOS,Fedora)上,下载.rpm二进制文件并使用以下命令进行安装:

$ sudo rpm -Uvh duf_0.3.1_linux_amd64.rpm

我们也可以从源代码构建它。 确保你有 已安装的GO语言 在您的系统上。

Git克隆duf存储库:

$ git clone https://github.com/muesli/duf.git

上面的命令将在名为“ duf”的本地目录中克隆duf在线存储库的内容。 转到该目录:

$ cd duf

使用以下命令编译并安装它:

$ go build

在Linux和Unix上使用Duf查看磁盘使用情况

使用duf查找磁盘空间使用情况很容易!

您要做的就是运行 duf 命令,不包含以下任何选项:

$ duf

样本输出:

╭──────────────────────────────────────────────────────────────────────────────────────────╮
│ 1 local device                                                                           │
├────────────┬────────┬────────┬───────┬───────────────────────────────┬──────┬────────────┤
│ MOUNTED ON │   SIZE │   USED │ AVAIL │              USE%             │ TYPE │ FILESYSTEM │
├────────────┼────────┼────────┼───────┼───────────────────────────────┼──────┼────────────┤
│ /          │ 457.4G │ 412.1G │ 22.1G │ [##################..]  90.1% │ ext4 │ /dev/sda1  │
╰────────────┴────────┴────────┴───────┴───────────────────────────────┴──────┴────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 7 special devices                                                                                 │
├────────────────┬────────┬────────┬────────┬───────────────────────────────┬──────────┬────────────┤
│ MOUNTED ON     │   SIZE │   USED │  AVAIL │              USE%             │ TYPE     │ FILESYSTEM │
├────────────────┼────────┼────────┼────────┼───────────────────────────────┼──────────┼────────────┤
│ /dev           │   3.8G │     0B │   3.8G │                               │ devtmpfs │ udev       │
│ /dev/shm       │   3.8G │ 235.3M │   3.6G │ [#...................]   6.0% │ tmpfs    │ tmpfs      │
│ /run           │ 787.0M │   1.8M │ 785.2M │ [....................]   0.2% │ tmpfs    │ tmpfs      │
│ /run/lock      │   5.0M │   4.0K │   5.0M │ [....................]   0.1% │ tmpfs    │ tmpfs      │
│ /run/snapd/ns  │ 787.0M │   1.8M │ 785.2M │ [....................]   0.2% │ tmpfs    │ tmpfs      │
│ /run/user/1000 │ 787.0M │ 238.2M │ 548.8M │ [######..............]  30.3% │ tmpfs    │ tmpfs      │
│ /sys/fs/cgroup │   3.8G │     0B │   3.8G │                               │ tmpfs    │ tmpfs      │
╰────────────────┴────────┴────────┴────────┴───────────────────────────────┴──────────┴────────────╯

在Linux和Unix上使用Duf查看磁盘使用情况

从上面的输出中可以看到,Duf以表格列的格式列出了以下详细信息:

  • 已安装设备总数,
  • 挂载点
  • 根分区的总大小,
  • 已用磁盘空间和可用磁盘空间的总大小,
  • 磁盘总使用量百分比
  • 文件系统类型,
  • 文件系统名称等

要显示所有详细信息,包括伪,重复和不可访问的文件系统,请运行:

$ duf --all

样本输出:

╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 24 local devices                                                                                                  │
├────────────────────────────────┬────────┬────────┬───────┬───────────────────────────────┬──────────┬─────────────┤
│ MOUNTED ON                     │   SIZE │   USED │ AVAIL │              USE%             │ TYPE     │ FILESYSTEM  │
├────────────────────────────────┼────────┼────────┼───────┼───────────────────────────────┼──────────┼─────────────┤
│ /                              │ 457.4G │ 412.1G │ 22.1G │ [##################..]  90.1% │ ext4     │ /dev/sda1   │
│ /run/snapd/ns/multipass.mnt    │     0B │     0B │    0B │                               │ nsfs     │ nsfs        │
│ /snap/bashtop/128              │  23.1M │  23.1M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop0  │
│ /snap/bashtop/134              │  23.1M │  23.1M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop1  │
│ /snap/chromium/1298            │ 162.1M │ 162.1M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop2  │
│ /snap/chromium/1320            │ 162.0M │ 162.0M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop3  │
│ /snap/core/9804                │  96.6M │  96.6M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop4  │
│ /snap/core/9993                │  97.1M │  97.1M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop6  │
│ /snap/core18/1880              │  55.0M │  55.0M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop15 │
│ /snap/core18/1885              │  55.4M │  55.4M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop5  │
│ /snap/gifcurry/8               │ 149.0M │ 149.0M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop7  │
│ /snap/gnome-3-26-1604/100      │ 140.8M │ 140.8M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop16 │
│ /snap/gnome-3-26-1604/98       │ 140.8M │ 140.8M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop8  │
│ /snap/gnome-3-28-1804/116      │ 160.2M │ 160.2M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop14 │
│ /snap/gnome-3-28-1804/128      │ 161.5M │ 161.5M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop10 │
│ /snap/gnome-3-34-1804/33       │ 255.6M │ 255.6M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop9  │
│ /snap/gnome-3-34-1804/36       │ 255.6M │ 255.6M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop11 │
│ /snap/gnome-system-monitor/145 │   2.2M │   2.2M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop17 │
│ /snap/gnome-system-monitor/148 │   2.2M │   2.2M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop18 │
│ /snap/gtk-common-themes/1502   │  54.9M │  54.9M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop12 │
│ /snap/gtk-common-themes/1506   │  62.1M │  62.1M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop13 │
│ /snap/multipass/2531           │ 220.0M │ 220.0M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop19 │
│ /snap/multipass/2604           │ 220.0M │ 220.0M │    0B │ [####################] 100.0% │ squashfs │ /dev/loop20 │
│ /sys/fs/fuse/connections       │     0B │     0B │    0B │                               │ fusectl  │ fusectl     │
╰────────────────────────────────┴────────┴────────┴───────┴───────────────────────────────┴──────────┴─────────────╯
╭─────────────────────────────────────────────────────────────────────────────────╮
│ 1 FUSE device                                                                   │
├─────────────────────┬──────┬──────┬───────┬──────┬─────────────────┬────────────┤
│ MOUNTED ON          │ SIZE │ USED │ AVAIL │ USE% │ TYPE            │ FILESYSTEM │
├─────────────────────┼──────┼──────┼───────┼──────┼─────────────────┼────────────┤
│ /run/user/1000/gvfs │   0B │   0B │    0B │      │ fuse.gvfsd-fuse │ gvfsd-fuse │
╰─────────────────────┴──────┴──────┴───────┴──────┴─────────────────┴────────────╯
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 32 special devices                                                                                                     │
├─────────────────────────────────┬────────┬────────┬────────┬───────────────────────────────┬─────────────┬─────────────┤
│ MOUNTED ON                      │   SIZE │   USED │  AVAIL │              USE%             │ TYPE        │ FILESYSTEM  │
├─────────────────────────────────┼────────┼────────┼────────┼───────────────────────────────┼─────────────┼─────────────┤
│ /dev                            │   3.8G │     0B │   3.8G │                               │ devtmpfs    │ udev        │
│ /dev/hugepages                  │     0B │     0B │     0B │                               │ hugetlbfs   │ hugetlbfs   │
│ /dev/mqueue                     │     0B │     0B │     0B │                               │ mqueue      │ mqueue      │
│ /dev/pts                        │     0B │     0B │     0B │                               │ devpts      │ devpts      │
│ /dev/shm                        │   3.8G │ 224.1M │   3.6G │ [#...................]   5.7% │ tmpfs       │ tmpfs       │
│ /proc                           │     0B │     0B │     0B │                               │ proc        │ proc        │
│ /proc/sys/fs/binfmt_misc        │     0B │     0B │     0B │                               │ binfmt_misc │ binfmt_misc │
│ /run                            │ 787.0M │   1.8M │ 785.2M │ [....................]   0.2% │ tmpfs       │ tmpfs       │
│ /run/lock                       │   5.0M │   4.0K │   5.0M │ [....................]   0.1% │ tmpfs       │ tmpfs       │
│ /run/snapd/ns                   │ 787.0M │   1.8M │ 785.2M │ [....................]   0.2% │ tmpfs       │ tmpfs       │
│ /run/user/1000                  │ 787.0M │ 238.2M │ 548.8M │ [######..............]  30.3% │ tmpfs       │ tmpfs       │
│ /sys                            │     0B │     0B │     0B │                               │ sysfs       │ sysfs       │
│ /sys/fs/bpf                     │     0B │     0B │     0B │                               │ bpf         │ none        │
│ /sys/fs/cgroup                  │   3.8G │     0B │   3.8G │                               │ tmpfs       │ tmpfs       │
│ /sys/fs/cgroup/blkio            │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/cpu,cpuacct      │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/cpuset           │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/devices          │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/freezer          │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/hugetlb          │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/memory           │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/net_cls,net_prio │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/perf_event       │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/pids             │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/rdma             │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/systemd          │     0B │     0B │     0B │                               │ cgroup      │ cgroup      │
│ /sys/fs/cgroup/unified          │     0B │     0B │     0B │                               │ cgroup2     │ cgroup2     │
│ /sys/fs/pstore                  │     0B │     0B │     0B │                               │ pstore      │ pstore      │
│ /sys/kernel/config              │     0B │     0B │     0B │                               │ configfs    │ configfs    │
│ /sys/kernel/debug               │     0B │     0B │     0B │                               │ debugfs     │ debugfs     │
│ /sys/kernel/security            │     0B │     0B │     0B │                               │ securityfs  │ securityfs  │
│ /sys/kernel/tracing             │     0B │     0B │     0B │                               │ tracefs     │ tracefs     │
╰─────────────────────────────────┴────────┴────────┴────────┴───────────────────────────────┴─────────────┴─────────────╯

从输出中排除特定设备的详细信息

有时,您可能希望从输出中排除一些细节。 例如,以下命令将排除特殊设备的详细信息(例如 /run/lock/sys/fs/bpf)。

$ duf --hide-special

这将仅显示本地设备的磁盘使用情况详细信息,即从输出中消除特殊设备:

╭──────────────────────────────────────────────────────────────────────────────────────────╮
│ 1 local device                                                                           │
├────────────┬────────┬────────┬───────┬───────────────────────────────┬──────┬────────────┤
│ MOUNTED ON │   SIZE │   USED │ AVAIL │              USE%             │ TYPE │ FILESYSTEM │
├────────────┼────────┼────────┼───────┼───────────────────────────────┼──────┼────────────┤
│ /          │ 457.4G │ 412.0G │ 22.1G │ [##################..]  90.1% │ ext4 │ /dev/sda1  │
╰────────────┴────────┴────────┴───────┴───────────────────────────────┴──────┴────────────╯

其他受支持的选项是:

  • --hide-local
  • --hide-network
  • --hide-fuse
  • --hide-loops
  • --hide-binds

排序输出

我们可以显示按各种参数排序的磁盘使用情况详细信息,例如:

  • mountpoint
  • size
  • used
  • avail
  • usage
  • inodes
  • inodes_used
  • inodes_avail
  • inodes_usage
  • type
  • filesystem 等等

例如,要按大小对输出进行排序,请使用以下命令:

$ duf --sort size

按文件系统对输出进行排序:

$ duf --sort filesystem

显示或隐藏特定列

类似于从输出中排除某些设备详细信息,我们也可以从输出中显示或隐藏特定的列。

以下命令将显示输出 mountpointsizeusage 仅列:

$ duf --output mountpoint,size,usage

样本输出:

╭─────────────────────────────────────────────────────╮
│ 1 local device                                      │
├────────────┬────────┬───────────────────────────────┤
│ MOUNTED ON │   SIZE │              USE%             │
├────────────┼────────┼───────────────────────────────┤
│ /          │ 457.4G │ [##################..]  90.1% │
╰────────────┴────────┴───────────────────────────────╯
╭─────────────────────────────────────────────────────────╮
│ 7 special devices                                       │
├────────────────┬────────┬───────────────────────────────┤
│ MOUNTED ON     │   SIZE │              USE%             │
├────────────────┼────────┼───────────────────────────────┤
│ /dev           │   3.8G │                               │
│ /dev/shm       │   3.8G │ [#...................]   6.9% │
│ /run           │ 787.0M │ [....................]   0.2% │
│ /run/lock      │   5.0M │ [....................]   0.1% │
│ /run/snapd/ns  │ 787.0M │ [....................]   0.2% │
│ /run/user/1000 │ 787.0M │ [######..............]  30.3% │
│ /sys/fs/cgroup │   3.8G │                               │
╰────────────────┴────────┴───────────────────────────────╯

支持的选项列表为:

  • mountpoint
  • size
  • used
  • avail
  • usage
  • inodes
  • inodes_used
  • inodes_avail
  • inodes_usage
  • type
  • filesystem

显示索引节点详细信息

如果要列出索引节点信息而不是块使用情况,请运行以下命令:

$ duf --inodes

以JSON格式显示磁盘使用情况输出

代替以表格列格式显示输出,我们可以以JSON格式显示输出。

为此,请运行:

$ duf --json

样本输出:

[
 {
  "device": "sysfs",
  "device_type": "special",
  "mount_point": "/sys",
  "fs_type": "sysfs",
  "type": "sysfs",
  "opts": "rw,nosuid,nodev,noexec,relatime",
  "total": 0,
  "free": 0,
  "used": 0,
  "inodes": 0,
  "inodes_free": 0,
  "inodes_used": 0,
  "blocks": 0,
  "block_size": 4096
 },
.
.
.
{
  "device": "binfmt_misc",
  "device_type": "special",
  "mount_point": "/proc/sys/fs/binfmt_misc",
  "fs_type": "binfmt_misc",
  "type": "binfmt_misc",
  "opts": "rw,nosuid,nodev,noexec,relatime",
  "total": 0,
  "free": 0,
  "used": 0,
  "inodes": 0,
  "inodes_free": 0,
  "inodes_used": 0,
  "blocks": 0,
  "block_size": 4096
 }
]

获得帮助

要显示duf实用程序的帮助部分,请运行:

$ duf --help

样本输出:

Usage of duf:
  -all
    	include pseudo, duplicate, inaccessible file systems
  -hide-binds
    	hide bind mounts (default true)
  -hide-fuse
    	hide fuse devices
  -hide-local
    	hide local devices
  -hide-loops
    	hide loop devices (default true)
  -hide-network
    	hide network devices
  -hide-special
    	hide special devices
  -inodes
    	list inode information instead of block usage
  -json
    	output all devices in JSON format
  -output string
    	output fields: mountpoint, size, used, avail, usage, inodes, inodes_used, inodes_avail, inodes_usage, type, filesystem
  -sort string
    	sort output by: mountpoint, size, used, avail, usage, inodes, inodes_used, inodes_avail, inodes_usage, type, filesystem (default "mountpoint")
  -width uint
    	max output width

资源:

相关阅读:

  • ‘du’命令的一些不错的选择
  • Filelight –可视化Linux系统上的磁盘使用情况
  • 如何使用Ncdu在Linux中检查磁盘空间使用情况
  • Agedu –在Linux中找出浪费的磁盘空间
  • Duc –检查和可视化磁盘使用情况的工具集合
  • df命令教程,为初学者提供示例

特色图片 Picsaf Com像素

磁盘使用情况DufGo编程语言GoLangLinux开源Unix

Sidebar