GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo *solo* obtener la cantidad de bytes disponibles en un disco en bash?

Puedes usar awk,

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

Portabilidad:

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

El -P opción asegura que df imprimirá la salida en el formato esperado y, en particular, no romperá la línea después del nombre del dispositivo, incluso si es largo. Pasar el nombre del dispositivo como argumento a df elimina cualquier peligro del análisis, como obtener información para /dev/sda10 cuando estás consultando /dev/sda1 . df -P simplemente imprime dos líneas, la línea del encabezado (que ignora) y la línea de datos donde imprime la columna deseada.

Existe el riesgo de que df mostrará un nombre de dispositivo que contiene espacios, por ejemplo, si el volumen está montado por nombre y el nombre contiene espacios, o para un volumen NFS cuyo punto de montaje remoto contiene espacios. En este caso, no hay una forma totalmente portátil de analizar la salida de df . Si está seguro de que df mostrará el nombre exacto del dispositivo que le pasa (no siempre es así), puede eliminarlo:

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

Puedes usar un awk

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

Linux
  1. ¿Cómo obtener el Tty en el que se está ejecutando Bash?

  2. ¿Cómo puedo obtener el estado del teclado en Linux?

  3. ¿Cómo obtener la cantidad de CPU en Linux usando C?

  4. Cómo obtener el estado de salida de un bucle en bash

  5. ¿Cómo puedo obtener el último número de una cadena en bash?

Cómo obtener la cantidad de procesadores/núcleos en Linux

¿Cómo puedo obtener valores únicos de una matriz en Bash?

¿Cómo puedo contar la cantidad de caracteres en una variable Bash?

¿Cómo obtengo el directorio absoluto de un archivo en bash?

Cómo obtener solo el número de líneas de un archivo

¿Cómo puedo obtener la cantidad de memoria disponible de forma portátil entre distribuciones?