Comment puis-je voir du en Go au lieu de Mo sous Linux?


24

Cela marche:

du -cshm .

Mais cela échoue:

du -cshg .

Comment puis-je le voir en unité de Go?

Réponses:


41

GNU dua l' --block-sizeoption:

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

Comme sajb l'a noté, l'omission de l'argument de taille de bloc mettra automatiquement à l'échelle la sortie (et affichera l'unité). L'utilisation de n'importe quel argument de taille de bloc affiche le nombre mais omet l'unité.


À (GNU coreutils) 8.25 -h ne fonctionnait pas, alors que block-size = 1G fonctionnait!
Florian Straub

@FlorianStraub: Je ne sais pas ce que tu veux dire par -hne pas travailler. Il s'agit d'une option prise en charge qui fait que la sortie est "lisible par l'homme" (c'est-à-dire avec des suffixes d'unité et mise à l'échelle). Mais il est vrai qu'il est ignoré lors de --block-sizeson utilisation. Cela est noté dans ma réponse.
pause jusqu'à nouvel ordre.

mon mauvais: je voulais dire "-g n'a pas fonctionné"
Florian Straub

4

Pour plus de commodité, voici la référence pour macOS:

  • -hSortie "lisible par l'homme". Utilisez les suffixes d'unité: octet, kilo-octet, mégaoctet, gigaoctet, téraoctet et pétaoctet.
  • -k Affichage du nombre de blocs dans des blocs de 1 024 octets (1 Ko).
  • -m Affichage du nombre de blocs dans des blocs de 1 048 576 octets (1 Mo).
  • -g Affichage du nombre de blocs dans des blocs de 1 073 741 824 octets (1 Go).

Voici comment les différentes options fonctionnent avec un 1,234,567 KBfichier:

$ 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

A noter également, vous pouvez configurer le comportement implicite via la BLOCKSIZEvariable d'environnement:

BLOCKSIZESi la variable d'environnement BLOCKSIZEest définie et que l' -koption n'est pas spécifiée, le nombre de blocs sera affiché en unités de ce bloc de taille. Si BLOCKSIZEn'est pas défini et que l' -koption n'est pas spécifiée, le nombre de blocs sera affiché en 512blocs de -byte.


1

Utilisez du -B1073741824mais méfiez-vous, il donne le résultat en unités entières uniquement, et ne sera pas significatif avec-h


0

En plus des réponses précédentes, il semble également différer entre les différentes versions de coreutils (ou locale?), Car sur mon hôte, j'obtiens:

$ du -csh .
32G     .
32G     total
$ du --version | head -1
du (GNU coreutils) 7.4
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.