GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso *solo* ottenere il numero di byte disponibili su un disco in bash?

Puoi usare awk,

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

Portabile:

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

Il -P l'opzione assicura che df stamperà l'output nel formato previsto e in particolare non interromperà la riga dopo il nome del dispositivo anche se è lunga. Passare il nome del dispositivo come argomento a df rimuove qualsiasi pericolo dall'analisi, come ottenere informazioni per /dev/sda10 quando stai interrogando /dev/sda1 . df -P stampa solo due righe, la riga di intestazione (che ignori) e quella di dati in cui stampi la colonna desiderata.

C'è il rischio che df visualizzerà un nome di dispositivo contenente spazi, ad esempio se il volume è montato per nome e il nome contiene spazi o per un volume NFS il cui punto di montaggio remoto contiene spazi. In questo caso, non esiste un modo completamente portabile per analizzare l'output di df . Se sei sicuro che df visualizzerà il nome esatto del dispositivo che gli passi (non è sempre così), puoi rimuoverlo:

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

Puoi usare un awk

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

Linux
  1. Come trovare il numero di linee verticali disponibili nel terminal?

  2. Come ottenere le descrizioni delle opzioni `shopt` disponibili?

  3. Come posso ottenere un elenco di reti wireless disponibili su Linux?

  4. Come posso richiamare l'argomento del precedente comando bash?

  5. Come ottenere il numero di CPU in Linux usando C?

Come ottenere il numero di processori/core in Linux

Come posso ottenere lo stato della tastiera in Linux?

Come aggiungere un'icona al prompt di bash

Come posso ottenere valori univoci da un array in Bash?

Come ottengo la directory assoluta di un file in bash?

Come ottenere solo il numero di righe di un file