Quero obter apenas o tamanho total de um sistema de arquivos montado. Mas o problema é que só sei sobre o ponto de montagem. Então, pensei em usar o df
comando.
Para obter o tamanho deste sistema de arquivos montado, executei o seguinte comando:
df --output=target,size | grep -w /mnt/xyz
O resultado que obtive foi mais ou menos assim:
/mnt/xyz 4339044
Eu sei usar cut
mas não adiantou aqui porque o espaço entre a string e os inteiros é desconhecido para mim. Existe uma maneira de imprimir esse tamanho no terminal?
Responder1
Você pode fazer isso sem grep
:
df --output=target,size /mnt/xyz | awk ' NR==2 { print $2 } '
df
aceita como argumento o ponto de montagem; você pode dizer para awk
imprimir apenas a segunda linha (NR==2) e o segundo argumento, $2.
Ou melhor ainda, corte o alvo, pois você não o está gerando, e ele se tornará:
df --output=size /mnt/xyz | awk ' NR==2 '
Quando eu era iniciante, também consegui contornar cut
as limitações usando tr -s " "
(squeeze) para cortar espaços redundantes como em:
df --output=target,size /mnt/xyz | tail -1 | tr -s " " | cut -f2 -d" "
Responder2
Existe também o findmnt
comando, que pode imprimir o número de bytes ou um número "humano" (potências de 1024 com abreviações não-iso, infelizmente):
$ findmnt -no size /mnt/xyz
9.7G
$ findmnt -bno size /mnt/xyz
10434699264