Obtenga solo el tamaño de un sistema de archivos montado

Obtenga solo el tamaño de un sistema de archivos montado

Quiero obtener sólo el tamaño total de un sistema de archivos montado. Pero el problema es que sólo sé sobre el punto de montaje. Entonces, pensé en usar el dfcomando.

Para obtener el tamaño de este sistema de archivos montado, ejecuté el siguiente comando:

df --output=target,size | grep -w /mnt/xyz

El resultado que obtuve fue algo como esto:

/mnt/xyz             4339044

Sé cómo usarlo cut, pero no sirvió de nada aquí porque desconozco el espacio entre la cadena y los números enteros. ¿Hay alguna manera de imprimir este tamaño en el terminal?

Respuesta1

Puedes hacerlo sin grep:

df --output=target,size /mnt/xyz | awk ' NR==2 { print $2 } '

dfacepta como argumento el punto de montaje; puede indicarle awkque imprima solo la segunda línea (NR==2) y el segundo argumento, $2.

O mejor aún, corte el objetivo ya que no lo está generando y quedará:

df --output=size /mnt/xyz | awk ' NR==2 '

Cuando era principiante, también logré sortear cutlas limitaciones usando tr -s " "(apretar) para cortar espacios redundantes como en:

df --output=target,size /mnt/xyz | tail -1 | tr -s " " | cut -f2 -d" "

Respuesta2

También está el findmntcomando, que puede imprimir el número de bytes o un número "humano" (potencias de 1024 con abreviaturas que no son iso, lamentablemente):

$ findmnt -no size /mnt/xyz
 9.7G
$ findmnt -bno size /mnt/xyz
10434699264

información relacionada