GNU/Linux >> Belajar Linux >  >> Linux

jumlahkan semua angka dari du

Di AWK:

{ sum += $1 }
END { print sum }

Jadi

du -b /tmp/* | awk '{ sum += $1 } END { print sum }'

Perhatikan bahwa hasilnya tidak akan benar jika direktori di bawah /tmp memiliki subdirektori sendiri, karena du menghasilkan total berjalan pada direktori dan turunannya.

du -s akan menghitung jumlah untuk Anda dengan benar (pada semua subdirektori dan file di /tmp , termasuk yang tersembunyi):

du -sb /tmp

dan du -c akan menghitung jumlah direktori dan file yang terdaftar, juga dengan benar:

du -cb /tmp/*

Anda juga dapat menghasilkan jumlah total file yang dipilih dengan du -c . Ini berfungsi bahkan jika argumen du bukan direktori, apalagi du -s :

$ du -sb file1 file2
17  file1
18  file2

$ du -cb file1 file2
17  file1
18  file2
35  total

BTW, untuk penggunaan interaktif saya sarankan menambahkan -h opsi alih-alih -b atau pengganda ukuran blok lainnya. Ini akan mencetak ukuran dalam format unit yang dapat dibaca manusia.

$ du -ch file1 file2
4.0K    file1
4.0K    file2
8.0K    total

Sederhana saja, Anda dapat menggunakan:

 du -b /tmp/* | awk 'BEGIN{i=0} {i=i+$1} END{print i}'

Jika Anda tidak menggunakan wildcard, jika Anda menggunakan nama direktori seperti /tmp , maka Anda perlu menghindari entri terakhir karena keluaran du -b /tmp adalah seperti:

size1 file1
size2 file2
size_total .

Jadi sekarang Anda harus menghindari entri terakhir ini, jadi gunakan:

du -b /tmp | awk 'BEGIN{i=0} {if( $2 != "." ){i=i+$1}} END{print i}'

Namun Anda juga dapat menggunakan -s opsi, itu akan menghitung ringkasan untuk Anda maka Anda tidak perlu menambahkan nilainya, cukup cetak yang terakhir, yaitu:

du -s directory

Linux
  1. Hapus Semua Email Pengguna root dari Shell di Linux

  2. Kecualikan Semua File Garis Bawah Titik Dari Rsync?

  3. Bagaimana saya bisa dengan cepat menjumlahkan semua angka dalam sebuah file?

  1. Gunakan wc pada semua subdirektori untuk menghitung jumlah baris

  2. Hapus semua karakter khusus dan huruf besar-kecil dari string di bash

  3. Bagaimana cara memindahkan semua file dari direktori saat ini ke direktori atas?

  1. Zypper:Bagaimana cara menampilkan semua paket dari repositori tertentu?

  2. Apakah mungkin menginstal semua paket dari repositori APT?

  3. Bagaimana cara memilih semua teks dari file dengan nano?