Untuk dfmenghitung total, gunakan --totalsopsi. Jika Anda ingin total hanya lebih dari beberapa drive pilih, tentukan sebagai argumen.
Contoh (dan output dari komputer saya)
Ini adalah total untuk semua pemasangan lokal:
$ df --total -hl
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 14G 12G 2,1G 85% /
none 490M 660K 489M 1% /dev
none 497M 1,5M 495M 1% /dev/shm
none 497M 260K 496M 1% /var/run
none 497M 0 497M 0% /var/lock
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
total 19G 12G 7,3G 62%
Membatasi beberapa drive (perhatikan bahwa jika jalur yang ditentukan bukan titik pemasangan yang tepat, titik pemasangan yang mengandung paling dekat digunakan [lihat catatan di akhir] ):
$ df -hl --total /home /fastdisk
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 14G 12G 2,1G 85% /
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
total 17G 12G 5,3G 69%
atau menggunakan devnama:
$ df -hl --total /dev/sda1 /dev/sdb1
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
/dev/sdb1 14G 12G 2,1G 85% /
total 17G 12G 5,3G 69%
Kustomisasi lebih lanjut
Jika Anda ingin membuat daftar semua mount kecuali yang 'spesial', Anda dapat menggunakan -xopsi untuk mengecualikan berdasarkan tipe partisi. (Gunakan -Topsi untuk menampilkan jenisnya.)
Secara pribadi, untuk penggunaan interaktif, saya menggunakan alias bash berikut (ditambahkan ke ~/.bash_aliases) untuk mengecualikan mount 'non-fisik'.
alias df='df -h -x devtmpfs -x tmpfs -x debugfs'
Catatan
Menentukan jalur dalam titik pemasangan kadang-kadang dapat menghasilkan hasil yang berbeda dengan menentukan jalur persis ke titik pemasangan. Sebagai contoh, pada laptop saya, saya menggunakan sshfsuntuk me-mount server file (lokal) saya.
df -h ~/.server-root/ ~/.server-root/disks/A ~/.server-root/disks/B
Filesystem Size Used Avail Use% Mounted on
johan@server:/ 185G 58G 118G 33% /home/johan/.server-root
johan@server:/ 1,9T 637G 1,2T 35% /home/johan/.server-root
johan@server:/ 1,8T 1,1T 757G 59% /home/johan/.server-root
Root server ( /) dipasang di ~/.server-root. Namun, di server, disk sudah terpasang /disks/*, yang df(pada laptop) tidak 'tahu' tentang.
Jelas dfdapat mendaftar penggunaan disk pada tunggangan yang berbeda di server, jika diberikan jalur yang tepat. Namun, ini menunjukkan "Filesystem" dan "Mounted on" yang sama untuk semua path, karena (saya percaya) itu adalah satu-satunya titik mount (terkait dengan sshfsmount ini ) di tabel mount kernel lokal.
Hal lain: Tidak benar-benar terkait dengan pertanyaan, tetapi terkait dengan jawaban sebelumnya untuk pertanyaan itu.
Menambahkan angka dengan awkskrip (atau yang serupa), seperti yang dilakukan beberapa jawaban yang diposting sebelumnya, bukan ide yang baik ketika menggunakan -hbendera. Ini karena penanganan khusus diperlukan. Anda tidak bisa hanya melakukan size+=$2;untuk bidang yang ada 418Mdi satu baris dan 12Gdi baris lain dan dapatkan sesuatu yang bermanfaat darinya ...
Sebagai contoh dengan awk, menambahkan 500Muntuk 10.2Ghasil
$ echo -e '500M\n10.2G' | awk '{size+=$1;} END{print size;}'
510.2
510.2 dari apa?
Jelas ada masalah di sini. Jadi, hanya sebagai tip untuk diingat , ketika melakukan perhitungan (otomatis) pada output df (dan lain-lain yang dapat menggunakan angka 'dapat dibaca manusia' ) . Pastikan Anda tidak menggunakan -hflag dan input ke skrip perhitungan dinormalisasi (misalnya menjadi byte, blok, KB, atau apa pun) dan lakukan 'penskalaan tampilan' di bagian akhir. Tidak sulit, di sebagian besar bahasa scripting dan pemrograman, untuk menambahkan sesuatu seperti:
If value < threshold Then
print (value),"B"
Else If value < 1024*threshold Then
print (value/1024),"kB"
Else If value < 1024*1024*threshold Then
print (value/1024/1024),"MB"
(and so on...)
di mana nilainya dalam byte dan ambang adalah nilai pada urutan 1000. Hasil dari metode ini adalah Anda dapat dengan mudah menyetelnya untuk menghasilkan nilai cetakan (tidak termasuk awalan) dalam rentang yang diinginkan dan dengan sejumlah digit signifikan untuk Anda memilih. Dibandingkan dengan casing dengan utilitas standar dengan -hsakelar, di mana formatnya sering diperbaiki.
Tentu saja, perhitungan ini seringkali dapat dibuat lebih efisien dan / atau elegan, tetapi itu adalah pertanyaan untuk bahasa spesifik yang digunakan. Terus terang, jika digunakan dalam skrip pengguna yang dijalankan hanya sekarang dan kemudian untuk melihat secara interaktif beberapa informasi, efisiensi sebenarnya bukan masalah.