Linux에서 동일한 이름의 폴더에 대한 폴더 크기 확인 및 결합 된 크기보고 수 있습니다. du -m

하위 폴더가있는 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}'

숫자를 오른쪽 정렬하고 열에 이름을 정렬합니다.