Respuestas:
GNU dutiene la --block-sizeopción:
du -csh --block-size=1G .
Como señaló sajb , omitir el argumento del tamaño de bloque escalará automáticamente la salida (y mostrará la unidad). El uso de cualquier argumento de tamaño de bloque muestra el número pero omite la unidad.
-hno trabajar. Es una opción compatible que hace que la salida sea "legible para humanos" (es decir, con sufijos de unidad y escalados). Pero es cierto que se ignora cuando --block-sizese usa. Esto se nota en mi respuesta.
Por conveniencia, aquí hay una referencia para macOS:
-hSalida "legible para humanos". Utilice sufijos de unidad: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte y Petabyte.-k Visualice los recuentos de bloques en bloques de 1024 bytes (1 Kbyte).-m Visualice recuentos de bloques en bloques de 1,048,576 bytes (1 Mbyte).-g Visualice el recuento de bloques en bloques de 1,073,741,824 bytes (1 Gbyte).Así es como funcionan las diferentes opciones dado un 1,234,567 KBarchivo:
$ mkfile -n 1234567k file.txt
$ du file.txt
2469136 file.txt
$ du -k file.txt
1234568 file.txt
$ du -m file.txt
1206 file.txt
$ du -g file.txt
2 file.txt
$ du -h file.txt
1.2G file.txt
También vale la pena señalar, puede configurar el comportamiento implícito a través de la BLOCKSIZEvariable de entorno:
BLOCKSIZESi se establece la variable de entornoBLOCKSIZEy-kno se especifica la opción, los recuentos de bloques se mostrarán en unidades de ese tamaño de bloque. SiBLOCKSIZEno está configurado y la-kopción no está especificada, los recuentos de bloques se mostrarán en512bloques de bytes.