Respostas:
O GNU dutem a --block-sizeopção:
du -csh --block-size=1G .
Como sajb observou, a omissão do argumento do tamanho do bloco escalará automaticamente a saída (e exibirá a unidade). O uso de qualquer argumento de tamanho de bloco exibe o número, mas omite a unidade.
-hnão trabalhar. É uma opção suportada que faz com que a saída seja "legível por humanos" (ou seja, com sufixos de unidade e redimensionados). Mas é verdade que é ignorado quando --block-sizeé usado. Isso é observado na minha resposta.
Por conveniência, aqui está a referência para o macOS:
-hSaída "legível por humanos". Use sufixos de unidade: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte e Petabyte.-k O bloco de exibição conta em blocos de 1024 bytes (1 Kbyte).-m O bloco de exibição conta em blocos de 1.048.576 bytes (1 Mbyte).-g O bloco de exibição conta em blocos de 1.073.741.824 bytes (1 Gbyte).Aqui está como as várias opções funcionam, dado um 1,234,567 KBarquivo:
$ 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
Também vale ressaltar, você pode configurar o comportamento implícito através da BLOCKSIZEvariável de ambiente:
BLOCKSIZESe a variável de ambienteBLOCKSIZEestiver configurada e a-kopção não for especificada, as contagens de blocos serão exibidas em unidades desse tamanho de bloco. SeBLOCKSIZEnão estiver definido e a-kopção não for especificada, a contagem de blocos será exibida em512blocos de bytes.