Linux에서 동일한 이름의 폴더에 대한 폴더 크기 확인 및 결합 된 크기보고


3

하위 폴더가있는 2 개의 폴더가 있습니다 (사용자 이름을 따서). 대부분의 하위 폴더 이름은 두 폴더 모두에 존재하지만 전부는 아닙니다. 이제 각 사용자가 사용하는 공간 목록을 만들고 싶습니다.

다음 명령을 사용하여 각 폴더의 목록을 얻을 수 있습니다.

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

그러나이 두 목록을 병합하는 쉬운 방법을 모르겠습니다. 모든 사용자가 두 곳 모두에 폴더를 가지고있는 것은 아니므로 간단한 정렬이 작동하지 않습니다. 각 사용자의 폴더 크기를 합산하는 방법에 대한 아이디어가 있습니까?


나는 당신의 폴더 구조를 얻지 못했습니다. 명확히 할 간단한 예를 들어 주시겠습니까?
Patkos Csaba

답변:


3

이것을 시도하십시오 :

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

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


고마워, 이것은 완벽하게 작동합니다. join 명령에 대해 몰랐습니다. 정말 편리합니다.
미친 과학자
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.