사용자별 디스크 사용량 요약

사용자별 디스크 사용량 요약

특정 경로에서 각 사용자의 디스크 사용량을 얻을 수 있는 방법이 있습니까? du사용자별 디스크 사용량을 집계하는 옵션은 없는 것으로 보이며, df드라이브에 남아 있는 디스크의 양만 보고되는 것으로 나타납니다.

쉘에서 하나의 명령이나 몇 줄로 이 작업을 수행할 수 있습니까? 어떤 조언이라도 대단히 감사하겠습니다. 도움이 된다면 활용하겠습니다 zsh.

노트:우리 파일 시스템에는 할당량이 활성화되어 있지 않습니다.

답변1

다음은 GNU find및 에 적용됩니다 awk.

find /path -type f -printf '%u %k\n' | awk '{ 
                                            arr[$1] += $2 
                                        } END { 
                                            for ( i in arr ) { 
                                                print i": "arr[i]"K" 
                                            }
                                        }'

답변2

statzsh의 내장 기능을 활용할 수 있습니다 .

zmodload zsh/stat
local -a stat
local -A usage
local x
for x in **/*(.); do
  stat -A stat -- $x
  ((usage[$stat[5]] += stat[8]))
done
for x in ${(k)usage}; do
  echo $usage[$x] ${${"$(getent passwd $x)"%%:*}:-$x}
done | sort -k1n

( getent사용자 ID에서 사용자 이름을 검색하는 것은 Linux에만 해당되며 zsh에는 이에 대한 내용이 없다고 생각합니다.)

관련 정보