GNU/Linux >> Linux Esercitazione >  >> Linux

somma tutti i numeri da du

In AWK:

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

Quindi

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

Nota che il risultato non sarà corretto se le directory in /tmp hanno delle sottodirectory, perché du produce totali parziali sulle directory e sui loro figli.

du -s calcolerà correttamente la somma per te (su tutte le sottodirectory e i file in /tmp , compresi quelli nascosti):

du -sb /tmp

e du -c calcolerà la somma delle directory e dei file elencati, anche correttamente:

du -cb /tmp/*

Puoi anche produrre una somma totale dei file selezionati con du -c . Funziona anche se un argomento è du non è una directory, cosa che non è il caso di du -s :

$ du -sb file1 file2
17  file1
18  file2

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

A proposito, per un uso interattivo consiglio di aggiungere -h opzione invece di -b o qualsiasi altro moltiplicatore della dimensione del blocco. Questo stamperà le dimensioni in formato unità leggibile dall'uomo.

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

È semplice che puoi usare:

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

Se non stai usando caratteri jolly, se stai usando un nome di directory come /tmp , allora devi evitare l'ultima voce a causa dell'output di du -b /tmp è come:

size1 file1
size2 file2
size_total .

Quindi ora dovresti evitare quest'ultima voce, quindi usa:

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

Tuttavia puoi anche usare -s opzione, calcolerà il riepilogo per te, quindi non è necessario aggiungere i valori, basta stampare l'ultimo, ad esempio:

du -s directory

Linux
  1. Elimina tutte le e-mail dell'utente root da una shell in Linux

  2. Come rimuovere tutte le directory .svn dalle directory delle mie applicazioni

  3. Come posso sommare rapidamente tutti i numeri in un file?

  4. Utilizzo di awk per stampare tutte le colonne dall'ennesima all'ultima

  5. Usa wc su tutte le sottodirectory per contare la somma delle righe

Elenca o controlla tutti i kernel Linux installati dalla riga di comando

Come trovare tutti i caratteri installati dalla riga di comando in Linux

Generazione di numeri casuali dal terminale Linux

Come eseguire il backup di tutti i database MySQL dalla riga di comando

Come rimuovere tutti i caratteri di spazio bianco da un file di testo

Eliminazione di tutte le partizioni dalla riga di comando