Linux 每个设备的可用磁盘空间

Linux 每个设备的可用磁盘空间

在我的系统中,df -hT输出如下内容:

> df -hT 
Sist. Arq.     Tipo      Tam. Usado Disp. Uso% Montado em
devtmpfs       devtmpfs  1,9G  8,0K  1,9G   1% /dev
tmpfs          tmpfs     1,9G  616K  1,9G   1% /dev/shm
tmpfs          tmpfs     1,9G  1,8M  1,9G   1% /run
tmpfs          tmpfs     1,9G     0  1,9G   0% /sys/fs/cgroup
/dev/sda6      btrfs      80G   22G   58G  27% /
/dev/sda6      btrfs      80G   22G   58G  27% /.snapshots
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/pgsql
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/mysql
/dev/sda6      btrfs      80G   22G   58G  27% /var/opt
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/libvirt/images
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/mailman
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/machines
/dev/sda6      btrfs      80G   22G   58G  27% /var/crash
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/mariadb
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/named
/dev/sda6      btrfs      80G   22G   58G  27% /boot/grub2/x86_64-efi
/dev/sda6      btrfs      80G   22G   58G  27% /usr/local
/dev/sda6      btrfs      80G   22G   58G  27% /boot/grub2/i386-pc
/dev/sda6      btrfs      80G   22G   58G  27% /var/spool
/dev/sda6      btrfs      80G   22G   58G  27% /opt
/dev/sda6      btrfs      80G   22G   58G  27% /var/cache
/dev/sda6      btrfs      80G   22G   58G  27% /srv
/dev/sda6      btrfs      80G   22G   58G  27% /var/log
/dev/sda6      btrfs      80G   22G   58G  27% /var/tmp
/dev/sda6      btrfs      80G   22G   58G  27% /tmp
/dev/sda8      vfat      340G  313G   27G  93% /mnt/Data
/dev/sda7      xfs       200G  143G   58G  72% /home
tmpfs          tmpfs     385M   44K  385M   1% /run/user/1000
/dev/sda3      fuseblk   287G  190G   98G  67% /run/media/jaques/OS
/dev/mmcblk0p1 vfat      7,5G  2,1G  5,4G  28% /run/media/jaques/9843-A435

但我希望每个设备只列出一次,无论它被安装多少次。

我想要一些更简单的东西,像这样:

> df -hT 
Sist. Arq.     Tipo      Tam. Usado Disp. Uso%
/dev/sda6      btrfs      80G   22G   58G  27%
/dev/sda8      vfat      340G  313G   27G  93%
/dev/sda7      xfs       200G  143G   58G  72%
/dev/sda3      fuseblk   287G  190G   98G  67%
/dev/mmcblk0p1 vfat      7,5G  2,1G  5,4G  28%

有可能吗?怎样做?

系统信息(如果需要):

OpenSuse Tumbleweed
Kernel 4.10.1

提前致谢。

答案1

好吧,编辑 的输出df(例如使用awk)比尝试调整其选项更容易。所以我要做的是定义一个别名

alias my_df="df -hT|awk -F% '$1!=p&&$1!~/tmpfs/{print $1 FS;p=$1}'" 

并在需要减少输出时使用它。使用您提供的输入

$ my_df
Sist. Arq.     Tipo      Tam. Usado Disp. Uso%
/dev/sda6      btrfs      80G   22G   58G  27%
/dev/sda8      vfat      340G  313G   27G  93%
/dev/sda7      xfs       200G  143G   58G  72%
/dev/sda3      fuseblk   287G  190G   98G  67%
/dev/mmcblk0p1 vfat      7,5G  2,1G  5,4G  28%

解释: 的输出df通过管道传输awk,按照 的指示-F%,将每行输入分成两部分,$1一部分处理,$2一部分丢弃。然后,如果$1不同于p(见下文)并且$1不匹配tmpfs,我们会用最后的 打印它%。最后,我们将 的值赋给 ,$1这样p,如果下一行与这一行相同,我们就不会打印它。

希望一切都清楚。

相关内容