Como vejo du em GB em vez de MB em linux?


24

Isso funciona:

du -cshm .

Mas isso falha:

du -cshg .

Como posso vê-lo na unidade de GB?

Respostas:


41

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.


No (GNU coreutils) 8,25 -h não funcionou, enquanto o tamanho do bloco = 1G funcionou!
Florian Straub

@FlorianStraub: Não sei ao certo o que você quer dizer com -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.
Pausado até novo aviso.

meu mal: eu quis dizer "-g não funcionou"
Florian Straub

4

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 ambiente BLOCKSIZEestiver configurada e a -kopção não for especificada, as contagens de blocos serão exibidas em unidades desse tamanho de bloco. Se BLOCKSIZEnão estiver definido e a -kopção não for especificada, a contagem de blocos será exibida em 512blocos de bytes.


1

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


0

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

$ du -csh .
32G     .
32G     total
$ du --version | head -1
du (GNU coreutils) 7.4
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.