GNU/Linux >> Linux Esercitazione >  >> Linux

Misura lo spazio su disco di determinati tipi di file in aggregato

find folder1 folder2 -iname '*.txt' -print0 | du --files0-from - -c -s | tail -1


Questo riporterà l'utilizzo dello spazio su disco in byte per estensione:

find . -type f -printf "%f %s\n" |
  awk '{
      PARTSCOUNT=split( $1, FILEPARTS, "." );
      EXTENSION=PARTSCOUNT == 1 ? "NULL" : FILEPARTS[PARTSCOUNT];
      FILETYPE_MAP[EXTENSION]+=$2
    }
   END {
     for( FILETYPE in FILETYPE_MAP ) {
       print FILETYPE_MAP[FILETYPE], FILETYPE;
      }
   }' | sort -n

Uscita:

3250 png
30334451 mov
57725092729 m4a
69460813270 3gp
79456825676 mp3
131208301755 mp4

Semplice:

du -ch *.txt

Se desideri visualizzare solo lo spazio totale occupato, allora:

du -ch *.txt | tail -1

Ecco un modo per farlo (in Linux, usando GNU coreutils du e la sintassi di Bash), evitando cattive pratiche:

total=0
while read -r line
do
    size=($line)
    (( total+=size ))
done < <( find . -iname "*.txt" -exec du -b {} + )
echo "$total"

Se vuoi escludere la directory corrente, usa -mindepth 2 con find .

Un'altra versione che non richiede la sintassi di Bash:

find . -iname "*.txt" -exec du -b {} + | awk '{total += $1} END {print total}'

Nota che questi non funzioneranno correttamente con nomi di file che includono newline (ma quelli con spazi funzioneranno).


Linux
  1. Usa df per controllare lo spazio libero su disco su Linux

  2. Controlla lo spazio su disco utilizzato su Linux con du

  3. Riduzione dell'IO del disco per aumentare le prestazioni

  4. l'eliminazione dei file ma lo spazio su disco è ancora pieno

  5. Modo per riempire/utilizzare istantaneamente molto spazio su disco?

Comando Df in Linux (Controlla spazio su disco)

Come aumentare lo spazio su disco virtuale della VM su VirtualBox

Come montare il disco NTFS su Linux

Diff -r Solo per determinati tipi di file?

Comprendere lo spazio su disco tramite il comando 'df' in Linux

Comando Linux df per controllare lo spazio su disco