Você pode filtrar facilmente com awk
, verificando se o último campo é igual a /
e, em seguida, imprimir o campo 4th
correspondente:
df | awk '$NF == "/" { print $4 }' >> output
ou:
df / | awk 'NR == 2 { print $4 }' >> output
Com o comando df
, posso obter algo como:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 197844228 15578648 180242500 8% /
devtmpfs 4101368 0 4101368 0% /dev
tmpfs 820648 292 820356 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 1693720 4 1693716 1% /run/shm
E se eu quiser manter o número 180242500 registrado de /
e armazená-lo em um arquivo (como disk-space-available.txt
)
Se eu usar df >> disk-space-available.txt
, ele armazenará todo o conteúdo enquanto eu quero apenas o número bruto nesse arquivo.
Por exemplo, se houver algo assim, está funcionando:
df -OUTPUT=raw-available-number
180242500
O que posso fazer?
Com df
do GNU coreutils:
$> df --output=avail /
Avail
12345
$> df --output=avail / | grep -v Avail
12345
Se você não tem a versão GNU de 'df', você pode usar 'stat' para obter o número e o tamanho dos blocos disponíveis.
stat --file-system --format="%f %S" /
Você pode multiplicá-los para obter os bytes disponíveis.
(stat=$(stat --file-system --format="%f %S" /) && echo $(( ${stat/ /*} )))
Você pode, opcionalmente, convertê-lo para legível por humanos com numfmt --to=iec
.
Tags shell