GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu *pouze* získat počet bajtů dostupných na disku v bash?

Můžete použít awk,

df | awk '$1=="/dev/sda"{print $4}'

Přenosně:

df -P /dev/sda1 | awk 'NR==2 {print $4}'

-P volba zajišťuje, že df vytiskne výstup v očekávaném formátu a zejména nepřeruší řádek za názvem zařízení, i když je dlouhý. Předání názvu zařízení jako argumentu df odstraňuje všechna nebezpečí vyplývající z analýzy, jako je získávání informací pro /dev/sda10 když zadáváte dotaz /dev/sda1 . df -P vytiskne pouze dva řádky, řádek záhlaví (který ignorujete) a jeden datový řádek, kde vytisknete požadovaný sloupec.

Existuje riziko, že df zobrazí název zařízení obsahující mezery, například pokud je svazek připojen podle názvu a název obsahuje mezery, nebo pro svazek NFS, jehož vzdálený bod připojení obsahuje mezery. V tomto případě neexistuje žádný plně přenosný způsob, jak analyzovat výstup df . Pokud jste si jisti, že df zobrazí přesný název zařízení, který mu předáte (není to vždy případ), můžete jej odstranit:

df -P -- "$device" | awk -vn=${#device} 'NR==2 {$0 = substr($0, n+1); print $3}'

Můžete použít awk

df | grep sda | awk '{print $4}'

Linux
  1. Jak zjistit počet vertikálních linek dostupných v terminálu?

  2. Jak mohu získat seznam dostupných bezdrátových sítí v systému Linux?

  3. Jak si mohu vybavit argument předchozího příkazu bash?

  1. Jak mohu získat stav klávesnice v Linuxu?

  2. Jak mohu získat jedinečné hodnoty z pole v Bash?

  3. Jak získat stav ukončení smyčky v bash

  1. Jak získám absolutní adresář souboru v bash?

  2. Jak získat pouze počet řádků souboru

  3. Jak mohu získat poslední číslo z řetězce v bash?