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 df
comando.
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 } '
df
acepta como argumento el punto de montaje; puede indicarle awk
que 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 cut
las 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 findmnt
comando, 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