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

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

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

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

9
задан 12 December 2014 в 10:15

3 ответа

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

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 к любому типу файла Вы хотите найти использование диска для.

12
ответ дан 23 November 2019 в 05:00

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

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

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

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

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

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

-1
ответ дан 23 November 2019 в 05:00

В более общем плане вы можете использовать комбинацию 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
5
ответ дан 3 March 2020 в 08:25

Другие вопросы по тегам:

Похожие вопросы: