共计 3629 个字符,预计需要花费 10 分钟才能阅读完成。
导读 | 如果你是个 Linux 命令行用户,你肯定会使用 df 命令检查文件系统的磁盘使用情况。尽管 df 是一个受欢迎的命令,但仍然不能提供一些高级的功能,如一个用户实际的磁盘可用空间,以及各种有用的显示格式等。还有另一个命令行实用工具可用,不仅提供了这些高级功能也提供了 df 的所有特性。在本文中, 我们将讨论磁盘信息工具 — di。 |
从这个 di 帮助手册页很明显的发现 di 提供了一些很有价值的特性,值得一试。让我们看一些这个工具实际使用的例子。
-
OS – Ubuntu 13.04
Shell – Bash 4.2.45
Application – di 4.30
下面是一些 di 工具的示例:
默认情况下 di 命令生成人们易读的输出格式,这里有个示例:
$ di
Filesystem Mount Size Used Avail %Used fs Type
/dev/sda6 / 28.1G 20.2G 6.5G 77% ext4
udev /dev 1.5G 0.0G 1.5G 0% devtmpfs
tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
所以你能发现用千兆字节 (G) 和兆字节 (M) 做磁盘使用情况的数据单位。这绝对是比 df 默认的输出产生的效果好。(译注:df 也可以输出带类似单位的显示,只是需要额外加参数 -h)
选项 - A 可以用来极详细的打印挂载点,特殊设备名称等,这里有个示例:
$ di -A
Mount fs Type Filesystem
Options
Size Used Free %Used %Free
Size Used Avail %Used %Free
Size Used Avail %Used
Inodes Iused Ifree %Iused
/ ext4 /dev/sda6
rw,errors=remount-ro
28.1G 20.2G 8.0G 72% 28%
28.1G 21.6G 6.5G 77% 23%
26.7G 20.2G 6.5G 75%
1884160 389881 1494279 21%
/dev devtmpfs udev
rw,mode=0755
1.5G 0.0G 1.5G 0% 100%
1.5G 0.0G 1.5G 0% 100%
1.5G 0.0G 1.5G 0%
381805 571 381234 0%
/run tmpfs tmpfs
rw,noexec,nosuid,size=10%,mode=0755
300.2M 0.9M 299.3M 0% 100%
300.2M 0.9M 299.3M 0% 100%
300.2M 0.9M 299.3M 0%
384191 549 383642 0%
所以你可以看到所有的字段,可以用于调试目的时打印输出。
这里是个示例:
$ di -a
Filesystem Mount Size Used Avail %Used fs Type
/dev/sda6 / 28.1G 20.2G 6.5G 77% ext4
udev /dev 1.5G 0.0G 1.5G 0% devtmpfs
devpts /dev/pts 0.0M 0.0M 0.0M 0% devpts
proc /proc 0.0M 0.0M 0.0M 0% proc
binfmt_misc /proc/sys/fs/bi 0.0M 0.0M 0.0M 0% binfmt_misc
tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
none /run/lock 0.0M 0.0M 0.0M 0% tmpfs
none /run/shm 0.0M 0.0M 0.0M 0% tmpfs
none /run/user 0.0M 0.0M 0.0M 0% tmpfs
gvfsd-fuse /run/user/himan 0.0M 0.0M 0.0M 0% fuse.gvfsd-fuse
sysfs /sys 0.0M 0.0M 0.0M 0% sysfs
none /sys/fs/cgroup 0.0M 0.0M 0.0M 0% tmpfs
none /sys/fs/fuse/co 0.0M 0.0M 0.0M 0% fusectl
none /sys/kernel/deb 0.0M 0.0M 0.0M 0% debugfs
none /sys/kernel/sec 0.0M 0.0M 0.0M 0% securityfs
所以你能看到与所有设备相关的所有信息,被打印出来了。
选项 -c 用命令分隔的值将附上双引号,这里是个示例:
$ di -c
s,m,b,u,v,p,T
/dev/sda6,/,28.1G,20.2G,6.5G,77%,ext4
udev,/dev,1.5G,0.0G,1.5G,0%,devtmpfs
tmpfs,/run,300.2M,0.9M,299.3M,0%,tmpfs
如上, 你可以看到打印了用逗号分隔符输出的值。(译注:这种输出便于作为其他程序的输入解析)
下面是个示例:
$ di -g
Filesystem Mount Gibis Used Avail %Used fs Type
/dev/sda6 / 28.1 20.2 6.5 77% ext4
udev /dev 1.5 0.0 1.5 0% devtmpfs
tmpfs /run 0.3 0.0 0.3 0% tmpfs
当然, 你能看到所有与大小有关的值都用千兆字节 (G) 打印出来,同样的你可以用 -k 和 -m 选项来分别的显示千字节 (K) 大小和兆字节 (M) 大小。
假设你想显示只跟 tmpfs 文件系统相关的信息。下面将告诉你如何用 -I 选项完成任务。
$ di -I tmpfs
Filesystem Mount Size Used Avail %Used fs Type
tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
none /run/lock 5.0M 0.0M 5.0M 0% tmpfs
none /run/shm 1.5G 0.0G 1.5G 0% tmpfs
none /run/user 100.0M 0.0M 100.0M 0% tmpfs
none /sys/fs/cgroup 0.0M 0.0M 0.0M 0% tmpfs
你能看到只有 tmpfs 类型相关文件系统信息被输出并显示出来了。
如果你正试图通过一个脚本 (或程序) 解析该命令的输出结果并希望 di 命令跳过显示的标题行,那么用 -n 选项是绝佳的方法,下面是个示例:
$ di -n
/dev/sda6 / 28.1G 20.2G 6.5G 77% ext4
udev /dev 1.5G 0.0G 1.5G 0% devtmpfs
tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
如上,你能发现输出中并没有显示标题行。
如果想要显示所有相关列的总数,用 -t 选项,示例:
$ di -t
Filesystem Mount Size Used Avail %Used fs Type
/dev/sda6 / 28.1G 20.2G 6.5G 77% ext4
udev /dev 1.5G 0.0G 1.5G 0% devtmpfs
tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
Total 29.9G 20.2G 8.3G 72%
观察到最后一行的值为所有文件系统的统计数据。
- s 选项可用于排序该命令的输出结果,下面告诉你如何反向排序输出:
$ di -sr
Filesystem Mount Size Used Avail %Used fs Type
tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
udev /dev 1.5G 0.0G 1.5G 0% devtmpfs
/dev/sda6 / 28.1G 20.2G 6.5G 77% ext4
你也可以在 - s 后添加子选项’r’逆序排序输出。类似的, 你可以使用 -s 选项做一些其他类型的排序,以下是摘自 man 手册供您参考:
-s 排序方式
可以指定排序方式。默认排序方式的按照挂载点的名称进行排序。支持如下的排序方式:
m:按照挂载点名称排序(默认)
n:不排序(即按照在挂载表 /etc/fstab 中的顺序)
s:按照特殊设备名称
t:按照文件系统类型
r:逆序排序
排序方式可以组合使用,如:di –stsrm:按照类型、设备、挂载点逆序排序。di –strsrm:按照类型、设备逆序、挂载点逆序排序。
你可以通过结合 - f 选项和其子选项指定输出格式字符串,例如用 -fm,打印挂载点的名称:
$ di -fm
Mount
/
/dev
/run
如上你可以看到只有挂载点的名字被打印出来,同样的,打印文件系统的类型用 -ft,示例:
$ di -ft
fsType
ext4
devtmpf
tmpfs
如果你想快速查找, 这里有个其他可用的格式选项截图。
最后,di 命令提供了一些非常有用的特性,比 df 命令更强大。如果你正在寻找一个类似 df,但比 df 更强大的关于磁盘信息的命令行工具,那么 di 是最理想的选择。
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)