Chcete-li získat výstup df
pro zobrazení dat v kb stačí použít -k
příznak:
df -k
Také, pokud zadáte souborový systém na df
, získáte hodnoty pro toto konkrétní místo všech z nich:
df -k /example
Pokud jde o tělo vaší otázky:chcete extrahovat množství volného místa na disku na daném souborovém systému. To bude vyžadovat určité zpracování.
Daný normální df -k
výstup:
$ df -k /tmp
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 7223800 4270396 2586456 63% /
Můžete získat Available
(4. sloupec) například s awk
nebo cut
(dříve potrubí na tr
na squeeze-repeats
(-s
) pro mezery):
$ df -k /tmp | tail -1 | awk '{print $4}'
2586456
$ df -k /tmp | tail -1 | tr -s ' ' | cut -d' ' -f4
2586456
Jako vždy, pokud chcete uložit výsledek do proměnné, použijte var=$(command)
syntaxe takto:
$ myUsed=$(df -k /tmp | tail -1 | awk '{print $4}')
$ echo "$myUsed"
2586456
Také z komentáře Tima Bunce můžete zpracovat dlouhé názvy souborových systémů pomocí --direct
získat -
místo toho, aby nevytiskl řádek, který naruší motor:
$ df -k --direct /tmp
Filesystem 1K-blocks Used Available Use% Mounted on
- 7223800 4270396 2586456 63% /
Pomocí příkazu stat(2) můžete zobrazit volné bloky a také zjistit, jak velký je každý blok, např.
stat -f --printf="%a %s\n" /
zobrazí počet volných bloků (%a) v daném systému souborů (/) následovaný velikostí bloku (%s). Chcete-li získat velikost v kB, můžete použít příkaz bc(1) jako v následujícím příkladu:
stat -f --printf="%a * %s / 1024\n" / | bc
Nakonec, vložit to do proměnné je jen otázkou použití substituce backtick (nebo $() jako v první odpovědi):
SOMEVAR=`stat -f --printf="%a * %s / 1024\n" / | bc`