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?

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.


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.


1

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


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.