Comment afficher l'utilisation du disque par type de fichier?

9

Fondamentalement, je me demande où tout mon espace disque est consommé sur mon lecteur et je voudrais pouvoir analyser par type de fichier

Par exemple, j'aimerais utiliser le terminal pour voir combien d'espace est utilisé par les .psdfichiers sur mon lecteur.

Existe-t-il un moyen de faire une telle chose?

Pete
la source

Réponses:

12

Essaye ça:

find . -iname '*.psd' -print0 | du -ch --files0-from=-
  • find . -iname '*.psd' recherche tous les fichiers se terminant par une extension de psd
  • -print0 imprime les noms de fichiers suivis d'un caractère nul au lieu d'une nouvelle ligne
  • | du -ch --files0-from=-prend les noms de fichiers findet calcule l'utilisation du disque. Les options indiquent du:
    • calculer l'utilisation du disque des noms de fichiers séparés par un caractère nul de stdin ( --files0-from=-),
    • imprimer des formats dans un format lisible par l'homme ( -h), et
    • imprimer un total à la fin ( -c).

Modifiez .psdle type de fichier pour lequel vous souhaitez trouver l'utilisation du disque.

Alaa Ali
la source
comment trier la sortie par taille?
ulkas
0

Plus généralement, vous pouvez utiliser une combinaison de findet awkpour signaler le regroupement de l'utilisation du disque par n'importe quelle règle de votre choix. Voici une commande qui regroupe par extensions de fichiers (tout ce qui apparaît après la dernière période):

# output pairs in the format: `filename size`.
# I used `nawk` because it's faster.
find -type f -printf '%f %s\n' | nawk '
  {
    split($1, a, ".");       # first token is filename
    ext = a[length(a)];      # only take the extension part of the filename
    size = $2;               # second token is file size
    total_size[ext] += size; # sum file sizes by extension
  }
  END {
    # print sums
    for (ext in total_size) {
      print ext, total_size[ext];
    }
  }'

Produirait quelque chose comme

wav 78167606
psd 285955905
txt 13160
Yuval
la source
-1

Oui vous pouvez. La syntaxe pour rechercher des fichiers dans le terminal est:

Syntax   :   find foldername -iname '.filetype' -size size 

Example  :   find $HOME -iname '*.mp3' -size +1M

Pour votre scénario, cela doit être comme

find $HOME -iname '*.psd' -size +0M

Pour plus d'informations, voir le document officiel ici .

PAC
la source
Oui, mais cela n'imprimera que les noms de fichiers qui sont + 0M, cela ne me dira pas réellement leur taille.
Alaa Ali
Oui, j'ai vu votre réponse parfaite!
PAC