Как отобразить использование диска по типу файла?

9

В основном мне интересно, где все мое дисковое пространство израсходовано на моем диске, и я хотел бы иметь возможность анализировать по типу файла

Например, я хотел бы использовать терминал, чтобы увидеть, сколько места используется .psdфайлами на моем диске.

Есть ли способ сделать такую ​​вещь?

Пит
источник

Ответы:

12

Попробуй это:

find . -iname '*.psd' -print0 | du -ch --files0-from=-
  • find . -iname '*.psd' находит все файлы, которые заканчиваются расширением psd
  • -print0 печатает имена файлов с последующим нулевым символом вместо новой строки
  • | du -ch --files0-from=-берет имена файлов из findи вычисляет использование диска. Варианты говорят du:
    • вычислить использование диском имен файлов, отделенных нулевым символом от stdin ( --files0-from=-),
    • размеры печати в удобочитаемом формате ( -h) и
    • напечатать итог в конце ( -c).

Выберите .psdлюбой тип файла, для которого вы хотите найти использование диска.

Алаа али
источник
как отсортировать вывод по размеру?
Улкас
0

В более общем смысле вы можете использовать комбинацию findи, awkчтобы сообщать о группировке дискового пространства по любому выбранному вами правилу. Вот команда, которая группирует по расширениям файлов (все, что появляется после последнего периода):

# 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];
    }
  }'

Будет производить что-то вроде

wav 78167606
psd 285955905
txt 13160
Юваль
источник
-1

Да, вы можете. Синтаксис для поиска файлов в терминале:

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

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

Для вашего сценария это должно быть как

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

Для получения дополнительной информации см. Официальный документ здесь .

PAC
источник
Да, но при этом будут напечатаны только имена файлов с размером +0M, но на самом деле они не сообщат мне их размер.
Алаа Али
Да, я видел твой ответ идеально!
PAC