Recentemente precisei saber o espaço livre em uma máquina Linux. O comando "df" é bem útil nesse caso.

Inicialmente ele retorna o tamanho do disco em blocos de 1 Kilobyte (KB), o que pode ser um pouco confuso. Mas existe a opção -h, que faz com que ele retorne em valores "humanos", ou seja, Megabytes, Gigabytes ou a unidade mais adequada para cada tamanho:

df -h

Só que no meu caso, o buraco era um pouco mais em baixo. Eu precisava que o comando me retornasse o valor apenas em Megabyte (MB) ou apenas em Gigabyte (GB), e não o mais adequado em cada caso.

Depois de uma boa pesquisa, consegui a solução. Com a opção -B você consegue determinar o tamanho do bloco. Então já que 1 Megabyte são 1048576 bytes, e 1 Gigabyte são 1073741824 bytes. Teríamos os seguintes comandos:

Retornar espaço livre em Megabytes:

df -B 1048576

Retornar epaço livre em Gigabytes:

df -B 1073741824

Lembrando que os valores são arredondados pelo comando.