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`