检查文件夹大小并报告 Linux 中同名文件夹的组合大小

检查文件夹大小并报告 Linux 中同名文件夹的组合大小

我有 2 个文件夹,其中包含子文件夹(以用户命名)。大多数子文件夹名称都存在于两个文件夹中,但并非全部。现在我想创建每个用户使用的空间列表。

我可以使用以下命令获取每个文件夹的列表,

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

但我不知道如何轻松合并这两个列表。并非所有用户在两个地方都有文件夹,因此简单的排序不起作用。有没有人知道如何汇总每个用户的文件夹大小?

答案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}'

这将使数字右对齐,并使名称在一列中排列。

相关内容