У меня есть каталог в Linux, содержащий большое количество файлов (десятки тысяч), а также каталоги, которые также могут содержать тысячи файлов.
В какой-то момент следующая команда du выдает ошибку «Слишком длинный список аргументов»:
du -ch data/*.txt
Если я пропущу через команду find, я не получу "общий итог",
find data/ -iname '*.txt' | xargs du -ch
Сделайте что-нибудь вроде этого:
find data -iname '*.txt' |xargs stat -c '%s' |awk '{total=total+$1}END{mbtotal = total / 1000000 ; print mbtotal}'
По сути, получите список файлов, используя find
, получите размер файла каждого обращения, используя stat
(форматирование вывода так, чтобы вы просто отображали размер), а затем суммируйте его, используя awk
(в моем примере делим на 1000000, чтобы получить что-то вроде мегабайт; знаменатель меняйте по своему усмотрению).
Вы также можете проделать подобное упражнение на Perl или на любом другом языке, который вы хотите использовать.