Respostas:
O GNU du
tem a --block-size
opçã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.
-h
nã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:
-h
Saí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 KB
arquivo:
$ 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 BLOCKSIZE
variável de ambiente:
BLOCKSIZE
Se a variável de ambienteBLOCKSIZE
estiver configurada e a-k
opção não for especificada, as contagens de blocos serão exibidas em unidades desse tamanho de bloco. SeBLOCKSIZE
não estiver definido e a-k
opção não for especificada, a contagem de blocos será exibida em512
blocos de bytes.