2016-10-24

Calcolare la somma delle dimensioni in byte dei file di una directory

Trattando l'output del comando ls -l con cut e sed si può ottenere la somma delle dimensioni con questo "semplice" comando:
echo $(($(ls -l | sed -e "s/ \+/ /g" | cut -d" " -f5 | paste -s -d+)))
Analizzando il comando si può notare:
  • ls -l per ottenere le informazioni dei file della directory corrente
  • sed per ridurre gli spazio in eccesso tra una colonna e la seguente
  • cut per ottenere solo la quinta colonna impostando lo spazio come separatore
  • paste per unire tutte le linee ottenute in un unica linea separando i valori con un segno +
  • $(.....) per utilizzare l'output dei comandi al suo interno come se fosse un comando
  • $((.....)) per valutare il contenuto come un'espressione aritmetica

Come al solito è uno dei modi per ottenere un risultato, quindi ce ne possono essere tanti altri anche migliori e più performanti.

1 commento:

  1. Un idea per un post, qui: https://twitter.com/climagic/status/792547147900149761
    Ti va? o me la lasci (diciamo dopo metà novembre).

    RispondiElimina