每个设备的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 

但我希望每个设备只列出一次,无论它被挂载多less次。

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

 > 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 

提前致谢。

那么编辑df的输出(比如用awk )比试图调整它的选项更容易。 所以我会做的是定义一个别名

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

并在需要减less输出时使用它。 随着你提供的input

 $ 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%指示,将每个input行分成两部分,分别处理$1和丢弃$2 。 然后,如果$1p不同(见下文), $1tmpfs不匹配,我们用最后的%打印它。 最后,我们将$1的值赋给p这样如果下一行与这个相同,我们就不打印它。

希望一切都清楚。