在我的系统中, 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
。 然后,如果$1
与p
不同(见下文), $1
与tmpfs
不匹配,我们用最后的%
打印它。 最后,我们将$1
的值赋给p
这样如果下一行与这个相同,我们就不打印它。
希望一切都清楚。