Espaço livre em disco do Linux por dispositivo

1

No meu sistema, df -hT apresenta algo assim:

> 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

mas gostaria de ter cada dispositivo listado apenas uma vez, independentemente de quantas vezes ele seja montado.

Eu gostaria de ter algo mais simples assim:

> 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%

É possível? Como?

Informações do sistema, se necessário:

OpenSuse Tumbleweed
Kernel 4.10.1

Obrigado antecipadamente.

    
por j4x 16.03.2017 / 14:38

1 resposta

3

Bem, é mais fácil editar a saída de df (por exemplo, com awk ) do que tentar ajustar suas opções. Então, o que eu faria é definir um alias

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

e use-o sempre que quiser a saída reduzida. Com a entrada que você forneceu

$ 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%

Explicação: A saída de df é canalizada por awk , que, conforme instruído por -F% , divide cada linha de entrada em duas partes, $1 a ser tratada e $2 a ser descartado. Então, se $1 for diferente de p (veja abaixo) e $1 não corresponder a tmpfs , nós o imprimimos com um % final. Por fim, atribuímos o valor de $1 a p para que, se a próxima linha for igual a esta, não a imprimamos.

Espero que tudo esteja claro.

    
por 16.03.2017 / 16:10