Подсчет размера всех файлов, соответствующих простому регулярному выражению

find /path/to/my/files/ -type f -name "*txt*" | xargs du -k | awk 'BEGIN{x=0}{x=x+$1}END{print x}'


Команда find выполняет поиск файлов в указанном пути /path/to/my/files/ с условием, что они имеют тип «f» (т.е. являются обычными файлами) и имя содержит «txt». Результат этого поиска передается команде xargs, которая берет каждый найденный файл и передает его в команду du -k. Команда du -k вычисляет размер каждого файла в килобайтах. Затем результаты передаются в программу awk для подсчета общего размера всех файлов. В начале программы awk переменная x инициализируется нулевым значением. Затем для каждого результата команды du значение первого столбца (размер файла) прибавляется к переменной x. По окончании выполнения всех команд результат выводится с помощью команды print. Таким образом, данная команда подсчитывает размер всех файлов, соответствующих условию, и выводит общий размер в килобайтах. Альтернативой может быть использование команды find с ключом -exec для выполнения команды du для каждого найденного файла отдельно, но это может занять больше времени при большом количестве файлов.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *