di:比 df 更有用的磁盘信息工具

系统 Linux
如果你是个Linux命令行用户,你肯定会使用df命令检查文件系统的磁盘使用情况。还有另一个命令行实用工具可用,不仅提供了这些高级功能,也提供了df的所有特性。

如果你是个Linux命令行用户,你肯定会使用df命令检查文件系统的磁盘使用情况。尽管df是一个受欢迎的命令,但仍然不能提供一些高级的功能,如一个用户实际的磁盘可用空间,以及各种有用的显示格式等。还有另一个命令行实用工具可用,不仅提供了这些高级功能,也提供了df的所有特性。在本文中,我们将讨论磁盘信息工具 -- di。

[[88393]]

注释 - 如果你想了解 df 更多信息,查看 df命令教程


di - 磁盘信息工具

从这个di帮助手册页很明显的发现 di 提供了一些很有价值的特性,值得一试。让我们看一些这个工具实际使用的例子。

测试环境

  • OS – Ubuntu 13.04
  • Shell – Bash 4.2.45
  • Application – di 4.30

一个简短的教程

下面是一些 di 工具的示例:

1. 默认的输出

默认情况下di命令生成人们易读的输出格式

这里有个示例:

  1. $ di 
  2. Filesystem         Mount               Size     Used    Avail %Used  fs Type  
  3. /dev/sda6          /                  28.1G    20.2G     6.5G   77%  ext4     
  4. udev               /dev                1.5G     0.0G     1.5G    0%  devtmpfs 
  5. tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs 

所以你能发现用千兆字节(G)和兆字节(M)做磁盘使用情况的数据单位。这绝对是比 df 默认的输出产生的效果好。(译注:df也可以输出带类似单位的显示,只是需要额外加参数 -h)

2. 用 -A 选项打印类似挂载点、特殊设备名称等全部字段

选项 -A可以用来极详细的打印挂载点,特殊设备名称等。

这里有个示例:

  1. $ di -A 
  2. Mount fs Type  Filesystem  
  3.      Options                              
  4.         Size     Used     Free %Used  %Free  
  5.         Size     Used    Avail %Used  %Free  
  6.         Size     Used    Avail %Used   
  7.        Inodes     Iused     Ifree %Iused 
  8. /     ext4     /dev/sda6   
  9.     rw,errors=remount-ro                 
  10.        28.1G    20.2G     8.0G   72%    28%   
  11.        28.1G    21.6G     6.5G   77%    23%   
  12.        26.7G    20.2G     6.5G   75%   
  13.       1884160    389881   1494279   21%  
  14. /dev  devtmpfs udev        
  15.     rw,mode=0755                         
  16.         1.5G     0.0G     1.5G    0%   100%   
  17.         1.5G     0.0G     1.5G    0%   100%   
  18.         1.5G     0.0G     1.5G    0%   
  19.        381805       571    381234    0%  
  20. /run  tmpfs    tmpfs       
  21.     rw,noexec,nosuid,size=10%,mode=0755  
  22.       300.2M     0.9M   299.3M    0%   100%   
  23.       300.2M     0.9M   299.3M    0%   100%   
  24.       300.2M     0.9M   299.3M    0%   
  25.        384191       549    383642    0% 

所以你可以看到所有的字段,可以用于调试目的时打印输出。

3. 用 -a选项打印所有挂载设备

这里是个示例:

  1. $ di -a 
  2. Filesystem         Mount               Size     Used    Avail %Used  fs Type         
  3. /dev/sda6          /                  28.1G    20.2G     6.5G   77%  ext4            
  4. udev               /dev                1.5G     0.0G     1.5G    0%  devtmpfs        
  5. devpts             /dev/pts            0.0M     0.0M     0.0M    0%  devpts          
  6. proc               /proc               0.0M     0.0M     0.0M    0%  proc            
  7. binfmt_misc        /proc/sys/fs/bi     0.0M     0.0M     0.0M    0%  binfmt_misc     
  8. tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs           
  9. none               /run/lock           0.0M     0.0M     0.0M    0%  tmpfs           
  10. none               /run/shm            0.0M     0.0M     0.0M    0%  tmpfs           
  11. none               /run/user           0.0M     0.0M     0.0M    0%  tmpfs           
  12. gvfsd-fuse         /run/user/himan     0.0M     0.0M     0.0M    0%  fuse.gvfsd-fuse 
  13. sysfs              /sys                0.0M     0.0M     0.0M    0%  sysfs           
  14. none               /sys/fs/cgroup      0.0M     0.0M     0.0M    0%  tmpfs           
  15. none               /sys/fs/fuse/co     0.0M     0.0M     0.0M    0%  fusectl         
  16. none               /sys/kernel/deb     0.0M     0.0M     0.0M    0%  debugfs         
  17. none               /sys/kernel/sec     0.0M     0.0M     0.0M    0%  securityfs 

所以你能看到与所有设备相关的所有信息,被打印出来了。

4. 用 -c 选项用逗号作为值的分隔符

选项 -c 用命令分隔的值将附上双引号

这里是个示例:

  1. $ di -c 
  2. s,m,b,u,v,p,T 
  3. /dev/sda6,/,28.1G,20.2G,6.5G,77%,ext4 
  4. udev,/dev,1.5G,0.0G,1.5G,0%,devtmpfs 
  5. tmpfs,/run,300.2M,0.9M,299.3M,0%,tmpfs 

如上,你可以看到打印了用逗号分隔符输出的值。(译注:这种输出便于作为其他程序的输入解析)

5. 用 -g 选项通过千兆字节(G)打印大小

下面是个示例:

 

  1. $ di -g 
  2. Filesystem         Mount              Gibis     Used    Avail %Used  fs Type  
  3. /dev/sda6          /                   28.1     20.2      6.5   77%  ext4     
  4. udev               /dev                 1.5      0.0      1.5    0%  devtmpfs 
  5. tmpfs              /run                 0.3      0.0      0.3    0%  tmpfs 

 

当然,你能看到所有与大小有关的值都用千兆字节(G)打印出来。

同样的你可以用 -k 和 -m 选项来分别的显示千字节(K)大小和兆字节(M)大小。

6. 通过 -I 选项显示特定的文件系统类型的相关信息

假设你想显示只跟tmpfs文件系统相关的信息。下面将告诉你如何用 -I 选项完成任务。

  1. $ di -I tmpfs 
  2. Filesystem         Mount               Size     Used    Avail %Used  fs Type 
  3. tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs   
  4. none               /run/lock           5.0M     0.0M     5.0M    0%  tmpfs   
  5. none               /run/shm            1.5G     0.0G     1.5G    0%  tmpfs   
  6. none               /run/user         100.0M     0.0M   100.0M    0%  tmpfs   
  7. none               /sys/fs/cgroup      0.0M     0.0M     0.0M    0%  tmpfs 

Ok 你能看到只有tmpfs类型相关文件系统信息被输出并显示出来了。

7. 用 -n 选项跳过标题行的输出

如果你正试图通过一个脚本(或程序)解析该命令的输出结果并希望 di 命令跳过显示的标题行,那么用 -n 选项是绝佳的方法。

下面是个示例:

  1. $ di -n 
  2. /dev/sda6          /                  28.1G    20.2G     6.5G   77%  ext4     
  3. udev               /dev                1.5G     0.0G     1.5G    0%  devtmpfs 
  4. tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs 

如上,你能发现输出中并没有显示标题行。

8. 通过 -t 选项在文件系统列表底下再打印一行总计行

如果想要显示所有相关列的总数,用 -t 选项。

示例:

  1. $ di -t 
  2. Filesystem         Mount               Size     Used    Avail %Used  fs Type  
  3. /dev/sda6          /                  28.1G    20.2G     6.5G   77%  ext4     
  4. udev               /dev                1.5G     0.0G     1.5G    0%  devtmpfs 
  5. tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs    
  6.                    Total              29.9G    20.2G     8.3G   72% 

观察到最后一行的值为所有文件系统的统计数据。

9. 通过 -s 选项 排序输出

-s选项可用于排序该命令的输出结果(译注:默认按照挂载点名称排序)

下面告诉你如何反向排序输出:

  1. $ di -sr 
  2. Filesystem         Mount               Size     Used    Avail %Used  fs Type 
  3. tmpfs              /run              300.2M     0.9M   299.3M    0%  tmpfs 
  4. udev               /dev                1.5G     0.0G     1.5G    0%  devtmpfs 
  5. /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 :按照类型、设备逆序、挂载点逆序排序。

 

10. 通过 -f 选项指定输出格式

你可以通过结合-f选项和其子选项指定输出格式字符串。

例如,用 -fm,打印挂载点的名称。

示例:

  1. $ di -fm 
  2. Mount           
  3. /               
  4. /dev           
  5. /run 

如上你可以看到只有挂载点的名字被打印出来。

同样的,打印文件系统的类型,用 -ft

示例:

  1. $ di -ft 
  2. fsType  
  3. ext4    
  4. devtmpf 
  5. tmpfs 

如果你想快速查找,这里有个其他可用的格式选项截图。

更完整的选项,参考di命令man文档


下载/安装

这里有一些关于di命令的重要链接:

命令行工具 di 也能通过apt、yum等命令在命令行下载和安装。Ubuntu用户也可以从Ubuntu 软件中心下载这个命令。

优点

  • 提供了许多高级功能
  • 跨平台

缺点

  • 在大多数的Linux发行版没有预装
  • 大量选项需要学习

结论

最后,di命令提供了一些非常有用的特性,比df命令更强大。如果你正在寻找一个类似df,但比df更强大的关于磁盘信息的命令行工具,那么di是最理想的选择。试试吧,包你满意!!!

 

责任编辑:奔跑的冰淇淋 来源: Linux中国
相关推荐

2010-07-05 16:27:12

唐骏

2022-04-25 10:04:56

df命令Linux

2021-09-23 10:20:16

算法模型技术

2009-10-22 10:19:57

linux磁盘命令

2009-10-22 10:59:29

linux磁盘命令

2022-03-31 10:39:07

Linuxsudo命令

2021-08-04 12:09:04

Linuxdf命令

2011-03-01 10:47:20

开源技术

2023-12-26 14:57:13

ChatGPT人工智能

2021-05-21 10:33:37

数据中心数据存储

2010-09-28 13:36:06

AndroidiPhone

2024-02-19 00:29:15

2024-01-25 11:38:11

AI数据

2013-05-14 13:18:03

SDN思科NBA

2011-09-15 14:15:53

IOS应用

2019-08-12 08:37:45

2010-12-29 10:29:31

Linux磁盘管理dfdu

2021-09-30 07:26:15

磁盘IO网络

2014-08-21 09:12:27

2013-09-16 10:12:52

大数据
点赞
收藏

51CTO技术栈公众号