Bagaimana saya melihat du dalam GB dan bukan MB di linux?

24

Ini bekerja:

du -cshm .

Tetapi ini gagal:

du -cshg .

Bagaimana saya bisa melihatnya dalam satuan GB?

apache
sumber

Jawaban:

41

GNU dumemiliki --block-sizeopsi:

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

Seperti yang dicatat sajb , menghilangkan argumen ukuran blok akan secara otomatis mengukur output (dan menampilkan unit). Menggunakan argumen ukuran blok apa pun menampilkan nomor tetapi menghilangkan unit.

Dijeda sampai pemberitahuan lebih lanjut.
sumber
Di (GNU coreutils) 8,25-h tidak bekerja, sedangkan ukuran blok = 1G berhasil!
Florian Straub
@FlorianStraub: Saya tidak yakin apa yang Anda maksud dengan -htidak bekerja. Ini adalah opsi yang didukung yang menyebabkan output menjadi "dapat dibaca manusia" (yaitu dengan sufiks unit dan diskalakan). Tetapi memang benar bahwa itu diabaikan ketika --block-sizedigunakan. Ini tercantum dalam jawaban saya.
Dijeda sampai pemberitahuan lebih lanjut.
salahku: maksudku "-g tidak bekerja"
Florian Straub
4

Untuk kenyamanan, inilah referensi untuk macOS:

  • -hOutput "Dapat dibaca manusia". Gunakan sufiks unit: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte dan Petabyte.
  • -k Tampilan blok diperhitungkan dalam blok 1024-byte (1-Kbyte).
  • -m Blok tampilan diperhitungkan dalam blok 1.048.576-byte (1-Mbyte).
  • -g Tampilan blok diperhitungkan dalam 1.073.741.824 byte (1-Gbyte) blok.

Berikut adalah cara kerja berbagai opsi yang diberikan 1,234,567 KBfile:

$ 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

Juga patut dicatat, Anda dapat mengkonfigurasi perilaku implisit melalui BLOCKSIZEvariabel lingkungan:

BLOCKSIZEJika variabel lingkungan BLOCKSIZEdiatur, dan -kopsi tidak ditentukan, jumlah blok akan ditampilkan dalam unit blok ukuran itu. Jika BLOCKSIZEtidak disetel, dan -kopsi tidak ditentukan, jumlah blok akan ditampilkan dalam 512-byte blok.

Alexander - Pasang kembali Monica
sumber
1

Gunakan du -B1073741824tetapi waspadalah, ini memberikan hasil hanya dalam integer-unit, dan tidak akan berarti-h

geocar
sumber
0

Selain jawaban sebelumnya, tampaknya juga berbeda antara versi coreutils yang berbeda (atau lokal?), Karena pada host saya, saya mendapatkan:

$ du -csh .
32G     .
32G     total
$ du --version | head -1
du (GNU coreutils) 7.4
sajb
sumber