Como faço para ver du em GB em vez de MB em linux?

19

Isso funciona:

du -cshm .

Mas isso falha:

du -cshg .

Como posso vê-lo na unidade de GB?

    
por apache 22.05.2010 / 18:56

4 respostas

35

O% GNUdu tem a opção --block-size :

du -csh --block-size=1G .

Como sajb observou, omitir o argumento do tamanho do bloco escalará automaticamente a saída (e exibirá a unidade). Usar qualquer argumento de tamanho de bloco exibe o número, mas omite a unidade.

    
por 22.05.2010 / 19:06
2

Por conveniência, aqui está a referência para o macOS:

  • -h "Leitura legível". Use sufixos unitários: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte e Petabyte.
  • -k Exibe contagem de blocos em blocos de 1024 bytes (1 Kbyte).
  • -m Exibe contagem de blocos em blocos de 1.048.576 bytes (1 Mbyte).
  • -g Exibe contagens de blocos em blocos de 1.073.741.824 bytes (1 Gbyte).

Veja como as várias opções funcionam com um arquivo 1,234,567 KB :

$ 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 a pena observar que você pode configurar o comportamento implícito através da variável de ambiente BLOCKSIZE :

BLOCKSIZE If the environment variable BLOCKSIZE is set, and the -k option is not specified, the block counts will be displayed in units of that size block. If BLOCKSIZE is not set, and the -k option is not specified, the block counts will be displayed in 512-byte blocks.

    
por 23.05.2018 / 23:03
1

Use du -B1073741824 , mas cuidado, ele fornece o resultado somente em unidades inteiras e não será significativo com -h

    
por 22.05.2010 / 19:08
0

Além das respostas anteriores, também parece diferir entre diferentes versões do coreutils (ou localidade?), já que no meu host eu recebo:

$ du -csh .
32G     .
32G     total
$ du --version | head -1
du (GNU coreutils) 7.4
    
por 22.05.2010 / 19:14

Tags