Решения тех проблем, с которым мне приходилось сталкиваться.

понедельник, 25 февраля 2008 г.

Размер всех файлов в директории

Задача: просуммировать размер всех файлов в директории. Первое, что приходит на ум - использовать команду du.


du -hs

Но она показывает размер, занимаемый файлами (и под-директориями!) на диске. А часто нужно посчитать именно кол-во байтов во всех файлах. Тогда можно сделать так:

find . -type f -exec ls -l \{\} \; | awk '{s+=$5} END {print s}'

Так как find весьма мощная утилита, то изменяя ее параметры можно подсчитать суммарный объем данных в файлах, удовлетворяющих заданным условиям.

Как правильно подсказали в комментариях, есть еще более короткое и правильное решение:

find . -type f -printf '%s\n' | awk '{SUM+=$1} END {print SUM}'

пятница, 8 февраля 2008 г.

информация об оборудовании

Потребовалось узнать, в каких слотах памяти какие планки стоят (на работающей машине, естественно). По этому поводу была обнаружена архи-полезная утилита lshw.
Не на всех системах степень детализации информации одинаковая, это понятно, но на более новых все видно.
Tip: с ключом -html программа генерит отчет в соответствующем формате, после чего его можно комфортно изучить в любимом браузере.

Для тех кто не знал - из той же серии есть еще 2 утилиты:
lsusb - информация о устройствах подключенных к шине USB;
lspci - тоже самое для PCI.

А еще есть утилита hwinfo, но с данной конкретной задачей она не справилась. Просто показал сколько всего памяти и все. Зато она выводит много всякого другого.