Remover a barra invertida funciona para mim:
df -hT /home | awk '{print $3}' | awk 'FNR == 2 {print $1 "B"}'
e pode ser simplificado para
df -hT /home | awk 'FNR == 2 {print $3 "B"}'
Eu tenho procurado e descobri que você pode encontrar seu espaço em disco com df -hT
. Então eu usei para obter o espaço em disco (no total) e quanto resta.
Mas a questão é, eu me pergunto se existem outras maneiras de obter as informações?
O código que eu copiei aqui dará espaço total em GB (adicionei o B no final) com o awk, como você pode ver, e também com o awk.
Isso pode ser muito confuso para alguns de vocês (eu ainda estou aprendendo bash), então se você tem alguma recomendação, então sinta-se à vontade para me dar. Lembre-se de que estou procurando opções que funcionem em todos os servidores / máquinas, sem software que precise ser baixado com o apt-get.
df -hT /home | awk '{print $3}' | awk 'FNR == 2 {print $1 "\B"}'
awk: cmd. line:1: warning: escape sequence '\B' treated as plain 'B'
912GB
Também não tenho idéia de como se livrar da mensagem awk. Isso pode parecer um pouco estranho, mas eu tenho que começar de algum lugar!
Para responder à sua pergunta sobre outras formas de obter as informações,
coreutils stat
tem a capacidade de consultar informações do sistema de arquivos
(o syscall subjacente é statfs
), usando a opção -f
. Isso pode dar
informações mais detalhadas que o simples df
. Por exemplo (veja stat
manpage para lista completa dos especificadores de formato):
$ stat -f /tmp --printf='{"block-size": %S, "total-blocks": %b, "free-blocks-users": %a, "free-blocks-root": %f}\n'
{"block-size": 4096, "total-blocks": 7559140, "free-blocks-users": 1693162, "free-blocks-root": 2077148}
Um exemplo talvez mais relevante, isso imprimirá o tamanho do sistema de arquivos em blocos:
$ stat -f /tmp --printf '%b\n'
7559140
Ou, para computar bytes, multiplique pelo tamanho do bloco (aqui, usando o GNU dc para o cálculo numérico):
$ stat -f /tmp --printf '%S %b *p' | dc
30962237440
Ou, para calcular o tamanho em gigabytes com dois dígitos fracionários e acrescente a string "GB":
$ stat -f /tmp --printf '%S %b * 2k 1024 dd**/n [GB]p' | dc
28.83GB
Dependendo da linguagem de programação que você gostaria de usar para isso
tarefa, um wrapper direto para statfs
pode estar disponível.
Tags disk disk-usage linux hard-disk