У меня есть 2 папки, которые имеют подпапки (названный в честь пользователей). Большинство подымен папок существует в обеих папках, но не всех. Теперь я хочу создать список пространства, использованного каждым пользователем.
Я могу использовать следующую команду для получения списка для каждой папки,
du -m --max-depth=1 | sort -nr
но я не знаю простой способ объединить два из этих списков. Не у всех пользователей есть папка в обоих местах, таким образом, простая сортировка не работает. Какая-либо идея о том, как подвести итог размеров папки для каждого пользователя?
Дайте этому попытку:
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}'
который будет выравнивание по правому краю числа и составлять строку имен в столбце.