2

Я пытаюсь выяснить общий размер всех файлов в каталоге, которые имеют конкретное расширение.

Я делаю некоторое внешнее резервное копирование через rsync, но из-за ограниченной пропускной способности и дискового пространства на другом конце я не могу сделать все, поэтому я хотел бы узнать, например, сколько места занимают MP3-файлы на диске, чтобы я мог принять решение удалить ли расширение mp3 из текущего списка исключенных шаблонов rsync.

Это не так просто, как сделать 'du -sh' в каталоге My Music, как есть некоторые другие типы файлов.

Спасибо!

4 ответа4

7

Вы можете использовать du:

find Music/ -type f -name "*.mp3" -exec du -shc {} + | tail -1 | awk '{print $1}'

пример вывода:

980M
1

Я просто попробовал следующее

find Music/ -name '*.mp3' -exec ls -l {} \; | awk '{ SUM += $5} END { print SUM/1024/1024 }'

И получил правильный ответ в мегабайтах (1024 х 1024)

0

Хорошо, это лучший способ, который я видел, который, кажется, выполняет приказы на порядок быстрее, чем те, которые содержат awk:

find "My Music/" -type f -name "*.mp3" -print0 | du -hc --files0-from=- | tail -n 1

выход:

1.3G Total

0
find Music/ -iname "*.mp3" -type f -exec stat -c "%s" {} \; | awk '{SUM+=$0} END {print SUM/1024/1024}'

Правильный ответ также, точно такой же, как и у pavium, может быть более надежным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .