Проверьте размеры папки, и отчет объединил размер для идентичных именованных папок в Linux

У меня есть 2 папки, которые имеют подпапки (названный в честь пользователей). Большинство подымен папок существует в обеих папках, но не всех. Теперь я хочу создать список пространства, использованного каждым пользователем.

Я могу использовать следующую команду для получения списка для каждой папки,

du -m --max-depth=1 | sort -nr

но я не знаю простой способ объединить два из этих списков. Не у всех пользователей есть папка в обоих местах, таким образом, простая сортировка не работает. Какая-либо идея о том, как подвести итог размеров папки для каждого пользователя?

3
задан 11.10.2014, 00:10

1 ответ

Дайте этому попытку:

join -j 2 <(cd dir1; du -m --max-depth=1 | sort -k2,2) <(cd dir2; du -m --max-depth=1 | sort -k2,2) | awk '{print $2 + $3, $1}' | sort -nr

Это должно быть похожим на это:

11 ./bob
9 ./jan
8 ./cheryl
3 ./mike

Можно изменить команду AWK для создания вывода немного более привлекательным:

awk '{printf "%6s\t%s\n", $2 + $3, $1}'

который будет выравнивание по правому краю числа и составлять строку имен в столбце.

3
ответ дан 08.12.2019, 01:08

Теги

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