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.