web-dev-qa-db-fra.com

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

Cela marche:

du -cshm .

Mais cela échoue:

du -cshg .

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

27
apache

GNU du a le --block-size option:

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 d'un argument de taille de bloc affiche le nombre mais omet l'unité.

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

  • -h Sortie "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 1024 octets (1 kilo-octet).
  • -m Affichage du nombre de blocs par 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 fonctionnent les différentes options étant donné un 1,234,567 KB fichier:

$ 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 variable d'environnement BLOCKSIZE:

BLOCKSIZE Si la variable d'environnement BLOCKSIZE est définie et que -k option n'est pas spécifiée, le nombre de blocs sera affiché en unités de ce bloc de taille. Si BLOCKSIZE n'est pas défini et que -k l'option n'est pas spécifiée, le nombre de blocs sera affiché dans 512- blocs d'octets.

Utilisation du -B1073741824 mais attention, il donne le résultat en unités entières uniquement, et ne sera pas significatif avec -h

1
geocar

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
0
sajb